Browse Source

CmsKit - Move Default BlogFeatures to IDefaultBlogFeatureProvider

pull/7745/head
enisn 6 years ago
parent
commit
b7e106a6d5
  1. 12
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Blogs/BlogPostConsts.cs
  2. 17
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogFeatureManager.cs
  3. 23
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/DefaultDefaultBlogFeatureProvider.cs
  4. 14
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/IDefaultBlogFeatureProvider.cs

12
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 public static class BlogPostConsts
{ {
@ -12,10 +14,12 @@
public const string EntityType = "BlogPost"; 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;
} }
} }

17
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogFeatureManager.cs

@ -1,10 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Domain.Services; using Volo.Abp.Domain.Services;
using Volo.CmsKit.Blogs;
namespace Volo.CmsKit.Blogs namespace Volo.CmsKit.Blogs
{ {
@ -12,19 +9,23 @@ namespace Volo.CmsKit.Blogs
{ {
protected IBlogFeatureRepository BlogFeatureRepository { get; } protected IBlogFeatureRepository BlogFeatureRepository { get; }
public BlogFeatureManager(IBlogFeatureRepository blogFeatureRepository) protected IDefaultBlogFeatureProvider DefaultBlogFeatureProvider { get; }
public BlogFeatureManager(
IBlogFeatureRepository blogFeatureRepository,
IDefaultBlogFeatureProvider defaultBlogFeatureProvider)
{ {
BlogFeatureRepository = blogFeatureRepository; BlogFeatureRepository = blogFeatureRepository;
DefaultBlogFeatureProvider = defaultBlogFeatureProvider;
} }
public async Task<List<BlogFeature>> GetListAsync(Guid blogId) public async Task<List<BlogFeature>> GetListAsync(Guid blogId)
{ {
var blogFeatures = await BlogFeatureRepository.GetListAsync(blogId); var blogFeatures = await BlogFeatureRepository.GetListAsync(blogId);
// TODO: Move them IDefaultBlogFeatureProvider var defaultFeatures = await DefaultBlogFeatureProvider.GetDefaultFeaturesAsync(blogId);
blogFeatures.AddIfNotContains(new BlogFeature(blogId, BlogPostConsts.CommentsFeatureName));
blogFeatures.AddIfNotContains(new BlogFeature(blogId, BlogPostConsts.ReactionsFeatureName)); defaultFeatures.ForEach(x => blogFeatures.AddIfNotContains(x));
blogFeatures.AddIfNotContains(new BlogFeature(blogId, BlogPostConsts.RatingsFeatureName));
return blogFeatures; return blogFeatures;
} }

23
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<List<BlogFeature>> GetDefaultFeaturesAsync(Guid blogId)
{
return Task.FromResult(new List<BlogFeature>
{
new BlogFeature(blogId, BlogPostConsts.CommentsFeatureName),
new BlogFeature(blogId, BlogPostConsts.ReactionsFeatureName),
new BlogFeature(blogId, BlogPostConsts.RatingsFeatureName),
new BlogFeature(blogId, BlogPostConsts.RatingsFeatureName),
});
}
}
}

14
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<List<BlogFeature>> GetDefaultFeaturesAsync(Guid blogId);
}
}
Loading…
Cancel
Save