From b7e106a6d59ffe48b532e885649187ec8d3ca30e Mon Sep 17 00:00:00 2001 From: enisn Date: Tue, 16 Feb 2021 16:45:50 +0300 Subject: [PATCH] CmsKit - Move Default BlogFeatures to IDefaultBlogFeatureProvider --- .../Volo/CmsKit/Blogs/BlogPostConsts.cs | 12 ++++++---- .../Volo/CmsKit/Blogs/BlogFeatureManager.cs | 17 +++++++------- .../DefaultDefaultBlogFeatureProvider.cs | 23 +++++++++++++++++++ .../Blogs/IDefaultBlogFeatureProvider.cs | 14 +++++++++++ 4 files changed, 54 insertions(+), 12 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/DefaultDefaultBlogFeatureProvider.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/IDefaultBlogFeatureProvider.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Blogs/BlogPostConsts.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Blogs/BlogPostConsts.cs index 2acd2cdeba..7d24f76d09 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Blogs/BlogPostConsts.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Blogs/BlogPostConsts.cs @@ -1,4 +1,6 @@ -namespace Volo.CmsKit.Blogs +using Volo.CmsKit.GlobalFeatures; + +namespace Volo.CmsKit.Blogs { public static class BlogPostConsts { @@ -12,10 +14,12 @@ public const string EntityType = "BlogPost"; - public const string CommentsFeatureName = "Comments"; + public const string CommentsFeatureName = CommentsFeature.Name; + + public const string ReactionsFeatureName = ReactionsFeature.Name; - public const string ReactionsFeatureName = "Reactions"; + public const string RatingsFeatureName = RatingsFeature.Name; - public const string RatingsFeatureName = "Ratings"; + public const string TagsFeatureName = TagsFeature.Name; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogFeatureManager.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogFeatureManager.cs index 9393a5e488..c1ccb0f16f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogFeatureManager.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogFeatureManager.cs @@ -1,10 +1,7 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Threading.Tasks; using Volo.Abp.Domain.Services; -using Volo.CmsKit.Blogs; namespace Volo.CmsKit.Blogs { @@ -12,19 +9,23 @@ namespace Volo.CmsKit.Blogs { protected IBlogFeatureRepository BlogFeatureRepository { get; } - public BlogFeatureManager(IBlogFeatureRepository blogFeatureRepository) + protected IDefaultBlogFeatureProvider DefaultBlogFeatureProvider { get; } + + public BlogFeatureManager( + IBlogFeatureRepository blogFeatureRepository, + IDefaultBlogFeatureProvider defaultBlogFeatureProvider) { BlogFeatureRepository = blogFeatureRepository; + DefaultBlogFeatureProvider = defaultBlogFeatureProvider; } public async Task> GetListAsync(Guid blogId) { var blogFeatures = await BlogFeatureRepository.GetListAsync(blogId); - // TODO: Move them IDefaultBlogFeatureProvider - blogFeatures.AddIfNotContains(new BlogFeature(blogId, BlogPostConsts.CommentsFeatureName)); - blogFeatures.AddIfNotContains(new BlogFeature(blogId, BlogPostConsts.ReactionsFeatureName)); - blogFeatures.AddIfNotContains(new BlogFeature(blogId, BlogPostConsts.RatingsFeatureName)); + var defaultFeatures = await DefaultBlogFeatureProvider.GetDefaultFeaturesAsync(blogId); + + defaultFeatures.ForEach(x => blogFeatures.AddIfNotContains(x)); return blogFeatures; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/DefaultDefaultBlogFeatureProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/DefaultDefaultBlogFeatureProvider.cs new file mode 100644 index 0000000000..f9b2d36800 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/DefaultDefaultBlogFeatureProvider.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace Volo.CmsKit.Blogs +{ + public class DefaultDefaultBlogFeatureProvider : IDefaultBlogFeatureProvider, ITransientDependency + { + public Task> GetDefaultFeaturesAsync(Guid blogId) + { + return Task.FromResult(new List + { + new BlogFeature(blogId, BlogPostConsts.CommentsFeatureName), + new BlogFeature(blogId, BlogPostConsts.ReactionsFeatureName), + new BlogFeature(blogId, BlogPostConsts.RatingsFeatureName), + new BlogFeature(blogId, BlogPostConsts.RatingsFeatureName), + }); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/IDefaultBlogFeatureProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/IDefaultBlogFeatureProvider.cs new file mode 100644 index 0000000000..51234e3cbd --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/IDefaultBlogFeatureProvider.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Volo.CmsKit.Blogs; + +namespace Volo.CmsKit.Blogs +{ + public interface IDefaultBlogFeatureProvider + { + Task> GetDefaultFeaturesAsync(Guid blogId); + } +}