protected override void BuildDisplayShape(BuildDisplayContext context) { var contentItemTag = PageLevelCacheTag.For(context.Content); if (contentItemTag.HasValue) { mItemIdList.Add(contentItemTag.Value); } if (!mItemLevelCacheService.MarkupShouldBeTokenized(context.Content, context.DisplayType)) { mItemIdList.Add(context.Content.Id); } }
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)); }