diff --git a/src/Umbraco.PublishedCache.NuCache/CacheKeys.cs b/src/Umbraco.PublishedCache.NuCache/CacheKeys.cs index e5f7b246f3..2d718a0dfd 100644 --- a/src/Umbraco.PublishedCache.NuCache/CacheKeys.cs +++ b/src/Umbraco.PublishedCache.NuCache/CacheKeys.cs @@ -4,35 +4,88 @@ namespace Umbraco.Cms.Infrastructure.PublishedCache; internal static class CacheKeys { - public static string PublishedContentChildren(Guid contentUid, bool previewing) => - "NuCache.Content.Children[" + DraftOrPub(previewing) + ":" + contentUid + "]"; + public static string PublishedContentChildren(Guid contentUid, bool previewing) + { + if (previewing) + { + return "NuCache.Content.Children[D::" + contentUid + "]"; + } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static string DraftOrPub(bool previewing) => previewing ? "D:" : "P:"; + return "NuCache.Content.Children[P::" + contentUid + "]"; + } - [MethodImpl(MethodImplOptions.AggressiveInlining)] - private static string LangId(string? culture) - => string.IsNullOrEmpty(culture) ? string.Empty : "-L:" + culture; + public static string ContentCacheRoots(bool previewing) + { + if (previewing) + { + return "NuCache.ContentCache.Roots[D:]"; + } - public static string ContentCacheRoots(bool previewing) => - "NuCache.ContentCache.Roots[" + DraftOrPub(previewing) + "]"; + return "NuCache.ContentCache.Roots[P:]"; + } - public static string MediaCacheRoots(bool previewing) => "NuCache.MediaCache.Roots[" + DraftOrPub(previewing) + "]"; + public static string MediaCacheRoots(bool previewing) + { + if (previewing) + { + return "NuCache.MediaCache.Roots[D:]"; + } + + return "NuCache.MediaCache.Roots[P:]"; + } public static string PublishedContentAsPreviewing(Guid contentUid) => "NuCache.Content.AsPreviewing[" + contentUid + "]"; public static string ProfileName(int userId) => "NuCache.Profile.Name[" + userId + "]"; - public static string PropertyCacheValues(Guid contentUid, string typeAlias, bool previewing) => - "NuCache.Property.CacheValues[" + DraftOrPub(previewing) + contentUid + ":" + typeAlias + "]"; + public static string PropertyCacheValues(Guid contentUid, string typeAlias, bool previewing) + { + if (previewing) + { + return "NuCache.Property.CacheValues[D:" + contentUid + ":" + typeAlias + "]"; + } + + return "NuCache.Property.CacheValues[P:" + contentUid + ":" + typeAlias + "]"; + } // routes still use int id and not Guid uid, because routable nodes must have // a valid ID in the database at that point, whereas content and properties // may be virtual (and not in umbracoNode). - public static string ContentCacheRouteByContent(int id, bool previewing, string? culture) => - "NuCache.ContentCache.RouteByContent[" + DraftOrPub(previewing) + id + LangId(culture) + "]"; + public static string ContentCacheRouteByContent(int id, bool previewing, string? culture) + { + if (string.IsNullOrEmpty(culture)) + { + if (previewing) + { + return "NuCache.ContentCache.RouteByContent[D:" + id +"]"; + } - public static string ContentCacheContentByRoute(string route, bool previewing, string? culture) => - "NuCache.ContentCache.ContentByRoute[" + DraftOrPub(previewing) + route + LangId(culture) + "]"; + return "NuCache.ContentCache.RouteByContent[P:" + id + "]"; + } + else if (previewing) + { + return "NuCache.ContentCache.RouteByContent[D:" + id + "-L:" + culture + "]"; + } + return "NuCache.ContentCache.RouteByContent[P:" + id + "-L:" + culture + "]"; + } + + public static string ContentCacheContentByRoute(string route, bool previewing, string? culture) + { + if (string.IsNullOrEmpty(culture)) + { + if (previewing) + { + return "NuCache.ContentCache.ContentByRoute[D:" + route + "]"; + } + + return "NuCache.ContentCache.ContentByRoute[P:" + route + "]"; + } + else if (previewing) + { + return "NuCache.ContentCache.ContentByRoute[D:" + route + "-L:" + culture + "]"; + } + + return "NuCache.ContentCache.ContentByRoute[P:" + route + "-L:" + culture + "]"; + } }