Removes RefreshByJson and changes macro cache refreshing to use objects

This commit is contained in:
Shannon
2020-01-23 19:48:15 +11:00
parent a020c52ff6
commit c7b0bf20b0
6 changed files with 12 additions and 43 deletions

View File

@@ -104,10 +104,10 @@ namespace Umbraco.Web.Cache
() => FileService.DeletedTemplate -= FileService_DeletedTemplate);
// bind to macro events
Bind(() => MacroService.Saved += (sender, e) => MacroService_Saved(sender, e),
() => MacroService.Saved -= (sender, e) => MacroService_Saved(sender, e));
Bind(() => MacroService.Deleted += (sender, e) => MacroService_Deleted(sender, e),
() => MacroService.Deleted -= (sender, e) => MacroService_Deleted(sender, e));
Bind(() => MacroService.Saved += MacroService_Saved,
() => MacroService.Saved -= MacroService_Saved);
Bind(() => MacroService.Deleted += MacroService_Deleted,
() => MacroService.Deleted -= MacroService_Deleted);
// bind to member events
Bind(() => MemberService.Saved += MemberService_Saved,
@@ -389,18 +389,16 @@ namespace Umbraco.Web.Cache
#region MacroService
private MacroCacheRefresher MacroCacheRefresher => _cacheRefresherCollection[MacroCacheRefresher.UniqueId] as MacroCacheRefresher;
private void MacroService_Deleted(IMacroService sender, DeleteEventArgs<IMacro> e)
{
foreach (var entity in e.DeletedEntities)
_distributedCache.RemoveMacroCache(MacroCacheRefresher, entity);
_distributedCache.RemoveMacroCache(entity);
}
private void MacroService_Saved(IMacroService sender, SaveEventArgs<IMacro> e)
{
foreach (var entity in e.SavedEntities)
_distributedCache.RefreshMacroCache(MacroCacheRefresher, entity);
_distributedCache.RefreshMacroCache(entity);
}
#endregion

View File

@@ -192,16 +192,18 @@ namespace Umbraco.Web.Cache
#region MacroCache
public static void RefreshMacroCache(this DistributedCache dc, MacroCacheRefresher macroCacheRefresher, IMacro macro)
public static void RefreshMacroCache(this DistributedCache dc, IMacro macro)
{
if (macro == null) return;
dc.RefreshByJson(macroCacheRefresher.RefresherUniqueId, macroCacheRefresher.Serialize(new MacroCacheRefresher.JsonPayload(macro.Id, macro.Alias)));
var payloads = new[] { new MacroCacheRefresher.JsonPayload(macro.Id, macro.Alias) };
dc.RefreshByPayload(MacroCacheRefresher.UniqueId, payloads);
}
public static void RemoveMacroCache(this DistributedCache dc, MacroCacheRefresher macroCacheRefresher, IMacro macro)
public static void RemoveMacroCache(this DistributedCache dc, IMacro macro)
{
if (macro == null) return;
dc.RefreshByJson(macroCacheRefresher.RefresherUniqueId, macroCacheRefresher.Serialize(new MacroCacheRefresher.JsonPayload(macro.Id, macro.Alias)));
var payloads = new[] { new MacroCacheRefresher.JsonPayload(macro.Id, macro.Alias) };
dc.RefreshByPayload(MacroCacheRefresher.UniqueId, payloads);
}
#endregion