public void RemoveByTag(string tag) { foreach (var key in _tagCache.GetTaggedItems(tag)) { _cacheStorageProvider.Remove(key); } }
public void RemoveByTag(string tag) { foreach (var key in _tagCache.GetTaggedItems(tag)) { _cacheStorageProvider.Remove(key); } // we no longer need the tag entry as the items have been removed _tagCache.RemoveTag(tag); }
public ActionResult EvictByTag(string tag, string returnUrl) { if (!mAuthorizer.Authorize(ItemLevelCachePermissions.EvictItemLevelCacheItems, T("You do not have permission to evict item-level cache items."))) { return(new HttpUnauthorizedResult()); } var taggedItems = mTagCache.GetTaggedItems(tag).ToList(); foreach (var cacheKey in taggedItems) { mCacheStorageProvider.Remove(cacheKey); } mNotifier.Information(T.Plural("There were no cache items to remove.", "1 cache item was removed.", "{0} cache items were removed.", taggedItems.Count(), taggedItems.Count())); return(this.RedirectLocal(returnUrl)); }
protected override DriverResult Editor(ItemLevelCachePart part, IUpdateModel updater, dynamic shapeHelper) { if (!mAuthorizer.Authorize(ItemLevelCachePermissions.EditItemLevelCacheSettings)) { return(null); } updater.TryUpdateModel(part, Prefix, null, null); part.SerializedItemLevelCacheSettings = mJsonConverter.Serialize(part.ItemLevelCacheSettings); if (mTagCache.GetTaggedItems(PageLevelCacheTag.For(part).ToString()).Any()) { var contentType = part.ContentItem.TypeDefinition.DisplayName; var returnUrl = mUrlHelper.Action("Index", new { area = "Orchard.Widgets", controller = "Admin" }); var url = mUrlHelper.Action("EvictByTag", new { area = "IDeliverable.Donuts", controller = "CacheItems", tag = PageLevelCacheTag.For(part), returnUrl }); mNotifier.Warning( T("There are some page level cache items that contain the {0} you have just edited. " + "Any new item level cache settings you have applied to this item will not apply on those pages until their page level cache items expire. " + "You can <a href=\"{1}\">evict these items now</a> in order for the changes to take effect immediately.", contentType, url)); } return(Editor(part, shapeHelper)); }