diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminAppService.cs index 9c6ca82852..d3fbdb5cb5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminAppService.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Volo.Abp.EventBus.Distributed; using Volo.Abp.GlobalFeatures; using Volo.CmsKit.Admin.Blogs; using Volo.CmsKit.Blogs; @@ -16,14 +17,19 @@ namespace Volo.CmsKit.Admin.Blogs public class BlogFeatureAdminAppService : CmsKitAdminAppServiceBase, IBlogFeatureAdminAppService { protected IBlogFeatureRepository BlogFeatureRepository { get; } + protected IBlogFeatureManager BlogFeatureManager { get; } + protected IDistributedEventBus EventBus { get; } + public BlogFeatureAdminAppService( IBlogFeatureRepository blogFeatureRepository, - IBlogFeatureManager blogFeatureManager) + IBlogFeatureManager blogFeatureManager, + IDistributedEventBus eventBus) { BlogFeatureRepository = blogFeatureRepository; BlogFeatureManager = blogFeatureManager; + EventBus = eventBus; } [Authorize(CmsKitAdminPermissions.Blogs.Features)] @@ -48,6 +54,13 @@ namespace Volo.CmsKit.Admin.Blogs blogFeature.IsEnabled = dto.IsEnabled; await BlogFeatureRepository.UpdateAsync(blogFeature); } + + await EventBus.PublishAsync(new BlogFeatureChangedEto + { + BlogId = blogId, + FeatureName = dto.FeatureName, + IsEnabled = dto.IsEnabled + }); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureAppService.cs index 820da8e660..32bfa9ebdc 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureAppService.cs @@ -2,6 +2,7 @@ using System; using System.Threading.Tasks; using Volo.Abp.Caching; +using Volo.Abp.EventBus.Distributed; namespace Volo.CmsKit.Blogs { diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureChangedEto.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureChangedEto.cs new file mode 100644 index 0000000000..e03b63cf34 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureChangedEto.cs @@ -0,0 +1,13 @@ +using System; +using Volo.Abp.EventBus; + +namespace Volo.CmsKit.Blogs +{ + [EventName("CmsKit.Blogs.BlogFeature.Changed")] + public class BlogFeatureChangedEto + { + public Guid BlogId { get; set; } + public string FeatureName { get; set; } + public bool IsEnabled { get; set; } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureChangedHandler.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureChangedHandler.cs new file mode 100644 index 0000000000..2697b7f2e5 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureChangedHandler.cs @@ -0,0 +1,22 @@ +using System.Threading.Tasks; +using Volo.Abp.Caching; +using Volo.Abp.DependencyInjection; +using Volo.Abp.EventBus.Distributed; + +namespace Volo.CmsKit.Blogs +{ + public class BlogFeatureChangedHandler : IDistributedEventHandler, ITransientDependency + { + protected IDistributedCache Cache { get; } + + public BlogFeatureChangedHandler(IDistributedCache cache) + { + Cache = cache; + } + + public async Task HandleEventAsync(BlogFeatureChangedEto eventData) + { + await Cache.RemoveAsync($"{eventData.BlogId}_{eventData.FeatureName}"); + } + } +}