From 2d4182bc8566e6c911a107571abc806c8a2603d6 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Fri, 1 Nov 2013 12:16:19 -0700 Subject: [PATCH] #19873: Invalidating Media Profiles cache Work Item: 19873 --- .../Controllers/FilterController.cs | 4 +++- .../Services/ImageProcessingFileNameProvider.cs | 2 +- .../Services/ImageProfileService.cs | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.MediaProcessing/Controllers/FilterController.cs b/src/Orchard.Web/Modules/Orchard.MediaProcessing/Controllers/FilterController.cs index 99ffcbbf4..6358dfd1d 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaProcessing/Controllers/FilterController.cs +++ b/src/Orchard.Web/Modules/Orchard.MediaProcessing/Controllers/FilterController.cs @@ -65,6 +65,8 @@ namespace Orchard.MediaProcessing.Controllers { filter.ImageProfilePartRecord.Filters.Remove(filter); _filterRepository.Delete(filter); + _signals.Trigger("MediaProcessing_Saved_" + filter.ImageProfilePartRecord.Name); + Services.Notifier.Information(T("Filter deleted")); return RedirectToAction("Edit", "Admin", new {id}); @@ -134,7 +136,7 @@ namespace Orchard.MediaProcessing.Controllers { // set profile as updated profile.ModifiedUtc = DateTime.UtcNow; profile.FileNames.Clear(); - _signals.Trigger("MediaProcessing_" + profile.Name + "_Saved"); + _signals.Trigger("MediaProcessing_Saved_" + profile.Name); return RedirectToAction("Edit", "Admin", new {id}); } diff --git a/src/Orchard.Web/Modules/Orchard.MediaProcessing/Services/ImageProcessingFileNameProvider.cs b/src/Orchard.Web/Modules/Orchard.MediaProcessing/Services/ImageProcessingFileNameProvider.cs index 7f72d4aaa..f8a7cf19a 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaProcessing/Services/ImageProcessingFileNameProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.MediaProcessing/Services/ImageProcessingFileNameProvider.cs @@ -59,7 +59,7 @@ namespace Orchard.MediaProcessing.Services { private IDictionary GetProfileCache(string profile) { return _cacheManager.Get("MediaProcessing_" + profile, ctx => { - ctx.Monitor(_signals.When("MediaProcessing_" + profile + "_Saved")); + ctx.Monitor(_signals.When("MediaProcessing_Saved_" + profile)); var dictionary = new Dictionary(); var profilePart = _imageProfileService.GetImageProfileByName(profile); diff --git a/src/Orchard.Web/Modules/Orchard.MediaProcessing/Services/ImageProfileService.cs b/src/Orchard.Web/Modules/Orchard.MediaProcessing/Services/ImageProfileService.cs index 816d378a4..c002f657f 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaProcessing/Services/ImageProfileService.cs +++ b/src/Orchard.Web/Modules/Orchard.MediaProcessing/Services/ImageProfileService.cs @@ -11,14 +11,17 @@ namespace Orchard.MediaProcessing.Services { private readonly IContentManager _contentManager; private readonly ICacheManager _cacheManager; private readonly IRepository _filterRepository; + private readonly ISignals _signals; public ImageProfileService( IContentManager contentManager, ICacheManager cacheManager, - IRepository filterRepository) { + IRepository filterRepository, + ISignals signals) { _contentManager = contentManager; _cacheManager = cacheManager; _filterRepository = filterRepository; + _signals = signals; } public Localizer T { get; set; } @@ -80,6 +83,8 @@ namespace Orchard.MediaProcessing.Services { .OrderByDescending(x => x.Position) .FirstOrDefault(); + _signals.Trigger("MediaProcessing_Saved_" + filter.ImageProfilePartRecord.Name); + // nothing to do if already at the top if (previous == null) { return;