diff --git a/src/Umbraco.Web/Cache/DataTypeCacheRefresher.cs b/src/Umbraco.Web/Cache/DataTypeCacheRefresher.cs index 34ca2ceec0..391fd09dd1 100644 --- a/src/Umbraco.Web/Cache/DataTypeCacheRefresher.cs +++ b/src/Umbraco.Web/Cache/DataTypeCacheRefresher.cs @@ -6,6 +6,7 @@ using System.Linq; using Umbraco.Core.Models; using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.PropertyEditors.ValueConverters; +using Umbraco.Web.PropertyEditors; using Umbraco.Web.PropertyEditors.ValueConverters; @@ -13,12 +14,12 @@ namespace Umbraco.Web.Cache { /// /// A cache refresher to ensure member cache is updated when members change - /// + /// public sealed class DataTypeCacheRefresher : JsonCacheRefresherBase { #region Static helpers - + /// /// Converts the json to a JsonPayload object /// @@ -29,7 +30,7 @@ namespace Umbraco.Web.Cache var serializer = new JavaScriptSerializer(); var jsonObject = serializer.Deserialize(json); return jsonObject; - } + } /// /// Creates the custom Json payload used to refresh cache amongst the servers @@ -43,7 +44,7 @@ namespace Umbraco.Web.Cache var json = serializer.Serialize(items); return json; } - + /// /// Converts a macro to a jsonPayload object /// @@ -58,7 +59,7 @@ namespace Umbraco.Web.Cache }; return payload; } - + #endregion #region Sub classes @@ -93,7 +94,7 @@ namespace Umbraco.Web.Cache //we need to clear the ContentType runtime cache since that is what caches the // db data type to store the value against and anytime a datatype changes, this also might change // we basically need to clear all sorts of runtime caches here because so many things depend upon a data type - + ClearAllIsolatedCacheByEntityType(); ClearAllIsolatedCacheByEntityType(); ClearAllIsolatedCacheByEntityType(); @@ -104,14 +105,15 @@ namespace Umbraco.Web.Cache ApplicationContext.Current.ApplicationCache.RuntimeCache.ClearCacheByKeySearch(CacheKeys.KeyToIdCacheKey); var dataTypeCache = ApplicationContext.Current.ApplicationCache.IsolatedRuntimeCache.GetCache(); - payloads.ForEach(payload => + foreach (var payload in payloads) { //clears the prevalue cache if (dataTypeCache) dataTypeCache.Result.ClearCacheByKeySearch(string.Format("{0}_{1}", CacheKeys.DataTypePreValuesCacheKey, payload.Id)); PublishedContentType.ClearDataType(payload.Id); - }); + NestedContentHelper.ClearCache(payload.Id); + } TagsValueConverter.ClearCaches(); MultipleMediaPickerPropertyConverter.ClearCaches();