diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs index be14293134..e31b3d9a25 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs @@ -40,8 +40,6 @@ namespace Volo.CmsKit.Admin CreateMap(MemberList.Destination) .ReverseMap(); - CreateMap(); - CreateMap(MemberList.Destination); CreateMap(); diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Blogs/IBlogFeatureCacheManager.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Blogs/IBlogFeatureCacheManager.cs deleted file mode 100644 index 9134b67a06..0000000000 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Blogs/IBlogFeatureCacheManager.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Volo.CmsKit.Blogs -{ - public interface IBlogFeatureCacheManager - { - Task AddOrGetAsync(Guid blogId, string featureName, Func> factory); - Task ClearAsync(Guid blogId, string featureName); - } -} 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 a1671b93c9..f5a796a33b 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,7 +2,6 @@ using System; using System.Threading.Tasks; using Volo.Abp.Caching; -using Volo.Abp.EventBus.Distributed; namespace Volo.CmsKit.Blogs { @@ -10,32 +9,31 @@ namespace Volo.CmsKit.Blogs { protected virtual IBlogFeatureRepository BlogFeatureRepository { get; } - protected virtual IBlogFeatureCacheManager BlogFeatureCacheManager { get; } + protected virtual IDistributedCache Cache { get; } public BlogFeatureAppService( IBlogFeatureRepository blogFeatureRepository, - IBlogFeatureCacheManager blogFeatureCacheManager) + IDistributedCache blogFeatureCacheManager) { BlogFeatureRepository = blogFeatureRepository; - BlogFeatureCacheManager = blogFeatureCacheManager; + Cache = blogFeatureCacheManager; } - public virtual Task GetOrDefaultAsync(Guid blogId, string featureName) + public virtual async Task GetOrDefaultAsync(Guid blogId, string featureName) { - return BlogFeatureCacheManager - .AddOrGetAsync( - blogId, - featureName, - ()=> GetOrDefaultFroRepositoryAsync(blogId, featureName) - ); + var cacheItem = await Cache.GetOrAddAsync( + new BlogFeatureCacheKey(blogId, featureName), + ()=> GetOrDefaultFroRepositoryAsync(blogId, featureName)); + + return ObjectMapper.Map(cacheItem); } - protected virtual async Task GetOrDefaultFroRepositoryAsync(Guid blogId, string featureName) + protected virtual async Task GetOrDefaultFroRepositoryAsync(Guid blogId, string featureName) { var feature = await BlogFeatureRepository.FindAsync(blogId, featureName); var blogFeature = feature ?? new BlogFeature(blogId, featureName); - return ObjectMapper.Map(blogFeature); + return ObjectMapper.Map(blogFeature); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureCacheItem.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureCacheItem.cs new file mode 100644 index 0000000000..ef17c5c2e0 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureCacheItem.cs @@ -0,0 +1,11 @@ +using System; + +namespace Volo.CmsKit.Blogs +{ + public class BlogFeatureCacheItem + { + public Guid Id { 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/BlogFeatureCacheKey.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureCacheKey.cs new file mode 100644 index 0000000000..f3e9579c0c --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureCacheKey.cs @@ -0,0 +1,24 @@ +using JetBrains.Annotations; +using System; +using Volo.Abp; + +namespace Volo.CmsKit.Blogs +{ + public class BlogFeatureCacheKey + { + public BlogFeatureCacheKey(Guid id, [NotNull] string featureName) + { + Id = id; + FeatureName = Check.NotNullOrEmpty(featureName, nameof(featureName)); + } + + public Guid Id { get; set; } + + public string FeatureName { get; set; } + + public override string ToString() + { + return $"BlogFeature_{Id}_{FeatureName}"; + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureCacheManager.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureCacheManager.cs deleted file mode 100644 index 353bc8dad9..0000000000 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Blogs/BlogFeatureCacheManager.cs +++ /dev/null @@ -1,46 +0,0 @@ -using JetBrains.Annotations; -using Microsoft.Extensions.Caching.Distributed; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Volo.Abp; -using Volo.Abp.Caching; -using Volo.Abp.DependencyInjection; - -namespace Volo.CmsKit.Blogs -{ - public class BlogFeatureCacheManager : IBlogFeatureCacheManager, ITransientDependency - { - protected IDistributedCache Cache { get; } - - public BlogFeatureCacheManager(IDistributedCache cache) - { - Cache = cache; - } - - public async Task AddOrGetAsync(Guid blogId, string featureName, Func> factory) - { - return await Cache.GetOrAddAsync( - GetCacheKey(blogId, featureName), - factory, - () => new DistributedCacheEntryOptions - { - AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(1) - }); - } - - public Task ClearAsync(Guid blogId, string featureName) - { - return Cache.RemoveAsync(GetCacheKey(blogId, featureName)); - } - - private string GetCacheKey(Guid blogId, [NotNull] string featureName) - { - Check.NotNullOrWhiteSpace(featureName, nameof(featureName)); - - return $"{blogId}_{featureName}"; - } - } -} 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 index 6781ab09ae..c861c0eb91 100644 --- 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 @@ -1,22 +1,23 @@ using System.Threading.Tasks; +using Volo.Abp.Caching; using Volo.Abp.DependencyInjection; using Volo.Abp.EventBus; -using Volo.Abp.EventBus.Distributed; namespace Volo.CmsKit.Blogs { public class BlogFeatureChangedHandler : ILocalEventHandler, ITransientDependency { - protected IBlogFeatureCacheManager CacheManager { get; } + protected IDistributedCache Cache { get; } - public BlogFeatureChangedHandler(IBlogFeatureCacheManager cacheManager) + public BlogFeatureChangedHandler( + IDistributedCache cache) { - CacheManager = cacheManager; + Cache = cache; } public async Task HandleEventAsync(BlogFeatureChangedEto eventData) { - await CacheManager.ClearAsync(eventData.BlogId, eventData.FeatureName); + await Cache.RemoveAsync(new BlogFeatureCacheKey(eventData.BlogId, eventData.FeatureName)); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/CmsKitCommonApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/CmsKitCommonApplicationAutoMapperProfile.cs index 9d89ddadeb..2eda9551bc 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/CmsKitCommonApplicationAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/CmsKitCommonApplicationAutoMapperProfile.cs @@ -1,4 +1,5 @@ using AutoMapper; +using Volo.CmsKit.Blogs; using Volo.CmsKit.Contents; using Volo.CmsKit.Pages; using Volo.CmsKit.Tags; @@ -13,6 +14,10 @@ namespace Volo.CmsKit CreateMap(); CreateMap(); + + CreateMap(); + + CreateMap().ReverseMap(); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs index ee8a09e8df..46dab5a9a1 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs @@ -34,8 +34,6 @@ namespace Volo.CmsKit.Public CreateMap(); CreateMap(MemberList.None); - - CreateMap(); } } }