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
{
@ -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;
}
}

17
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<List<BlogFeature>> 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;
}

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