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

@@ -101,19 +101,6 @@ namespace Umbraco.Web.Cache
GetRefresherById(refresherGuid),
payloads.ToArray());
}
/// <summary>
/// Notifies the distributed cache, for a specified <see cref="ICacheRefresher"/>.
/// </summary>
/// <param name="refresherGuid">The unique identifier of the ICacheRefresher.</param>
/// <param name="jsonPayload">The notification content.</param>
public void RefreshByJson(Guid refresherGuid, string jsonPayload)
{
if (refresherGuid == Guid.Empty || jsonPayload.IsNullOrWhiteSpace()) return;
_serverMessenger.PerformRefresh(
GetRefresherById(refresherGuid),
jsonPayload);
}
///// <summary>
///// Notifies the distributed cache, for a specified <see cref="ICacheRefresher"/>.

View File

@@ -11,8 +11,6 @@ using static Umbraco.Web.Cache.LanguageCacheRefresher.JsonPayload;
namespace Umbraco.Web.Cache
{
public sealed class LanguageCacheRefresher : PayloadCacheRefresherBase<LanguageCacheRefresher, LanguageCacheRefresher.JsonPayload>
//CacheRefresherBase<LanguageCacheRefresher>
{
public LanguageCacheRefresher(AppCaches appCaches, IJsonSerializer serializer, IPublishedSnapshotService publishedSnapshotService)
: base(appCaches, serializer)

View File

@@ -70,15 +70,6 @@ namespace Umbraco.Web.Cache
public int Id { get; }
}
// private JsonPayload[] Deserialize(string json)
// {
// return _jsonSerializer.Deserialize<JsonPayload[]>(json);
// }
//
// private string Serialize(params IMemberGroup[] groups)
// {
// return _jsonSerializer.Serialize(groups.Select(x => new JsonPayload(x.Id, x.Name)).ToArray());
// }
#endregion
}

View File

@@ -17,13 +17,6 @@ namespace Umbraco.Core.Sync
/// <param name="payload">The notification content.</param>
void PerformRefresh<TPayload>(ICacheRefresher refresher, TPayload[] payload);
/// <summary>
/// Notifies the distributed cache, for a specified <see cref="ICacheRefresher"/>.
/// </summary>
/// <param name="refresher">The ICacheRefresher.</param>
/// <param name="jsonPayload">The notification content.</param>
void PerformRefresh(ICacheRefresher refresher, string jsonPayload);
/// <summary>
/// Notifies the distributed cache of specified item invalidation, for a specified <see cref="ICacheRefresher"/>.
/// </summary>

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