/**
  * 
  * @param Advertisement or AdvertisementDenormalizedProperty $advertisement
  */
 private function invalidateAdsCache($advertisement)
 {
     $advertisementType = $advertisement->getAdvertisementType()->getId();
     $memcacheKey = FrontendMemcacheKeysHelper::getAdvertisementKeyByType($advertisementType);
     if (!$memcacheKey) {
         $denormalizedAd = $advertisement instanceof AdvertisementDenormalizedProperty ? $advertisement : $this->get('services.advertisement')->getDenomralizedPropertyById($advertisement->getId());
         switch ($advertisementType) {
             case AdvertisementTypes::SEARCH_RESULTS_SPECIALIZATION_FEATURE:
                 $memcacheKey = FrontendMemcacheKeysHelper::generateSearchResultsSpecializationFeaturedAdsKey($denormalizedAd->getSpecializationId());
                 break;
             case AdvertisementTypes::SEARCH_RESULTS_SUBSPECIALIZATION_FEATURE:
                 $memcacheKey = FrontendMemcacheKeysHelper::generateSearchResultsSubSpecializationFeaturedAdsKey($denormalizedAd->getSubSpecializationId());
                 break;
             case AdvertisementTypes::SEARCH_RESULTS_TREATMENT_FEATURE:
                 $memcacheKey = FrontendMemcacheKeysHelper::generateSearchResultsTreatmentFeaturedAdsKey($denormalizedAd->getTreatmentId());
                 break;
             case AdvertisementTypes::SEARCH_RESULTS_CITY_FEATURE:
                 $memcacheKey = FrontendMemcacheKeysHelper::generateSearchResultsCityFeaturedAdsKey($denormalizedAd->getCityId());
                 break;
             case AdvertisementTypes::SEARCH_RESULTS_CITY_SPECIALIZATION_FEATURE:
                 $memcacheKey = FrontendMemcacheKeysHelper::generateSearchResultsCitySpecializationFeaturedAdsKey($denormalizedAd->getCityId(), $denormalizedAd->getSpecializationId());
                 break;
             case AdvertisementTypes::SEARCH_RESULTS_CITY_SUBSPECIALIZATION_FEATURE:
                 $memcacheKey = FrontendMemcacheKeysHelper::generateSearchResultsCitySubSpecializationFeaturedAdsKey($denormalizedAd->getCityId(), $denormalizedAd->getSubSpecializationId());
                 break;
             case AdvertisementTypes::SEARCH_RESULTS_CITY_TREATMENT_FEATURE:
                 $memcacheKey = FrontendMemcacheKeysHelper::generateSearchResultsCityTreatmentFeaturedAdsKey($denormalizedAd->getCityId(), $denormalizedAd->getTreatmentId());
                 break;
             case AdvertisementTypes::SEARCH_RESULTS_COUNTRY_FEATURE:
                 $memcacheKey = FrontendMemcacheKeysHelper::generateSearchResultsCountryFeaturedAdsKey($denormalizedAd->getCountryId());
                 break;
             case AdvertisementTypes::SEARCH_RESULTS_COUNTRY_SPECIALIZATION_FEATURE:
                 $memcacheKey = FrontendMemcacheKeysHelper::generateSearchResultsCountrySpecializationFeaturedAdsKey($denormalizedAd->getCountryId(), $denormalizedAd->getSpecializationId());
                 break;
             case AdvertisementTypes::SEARCH_RESULTS_COUNTRY_SUBSPECIALIZATION_FEATURE:
                 $memcacheKey = FrontendMemcacheKeysHelper::generateSearchResultsCountrySubSpecializationFeaturedAdsKey($denormalizedAd->getCountryId(), $denormalizedAd->getSubSpecializationId());
                 break;
             case AdvertisementTypes::SEARCH_RESULTS_COUNTRY_TREATMENT_FEATURE:
                 $memcacheKey = FrontendMemcacheKeysHelper::generateSearchResultsCountryTreatmentFeaturedAdsKey($denormalizedAd->getCountryId(), $denormalizedAd->getTreatmentId());
                 break;
         }
     }
     $this->get('services.memcache')->delete($memcacheKey);
 }