예제 #1
0
 public void RemoveByTag(string tag)
 {
     foreach (var key in _tagCache.GetTaggedItems(tag))
     {
         _cacheStorageProvider.Remove(key);
     }
 }
예제 #2
0
        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);
        }
예제 #3
0
        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));
        }
예제 #4
0
        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));
        }