Browse Source

Add DeleteAsync method to BlogPostManager

pull/21108/head
liangshiwei 2 years ago
parent
commit
d03d228446
  1. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs
  2. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs
  3. 12
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogPostManager.cs
  4. 2
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs
  5. 2
      modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs
  6. 2
      modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs
  7. 7
      modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Blogs/BlogPostPublicAppService.cs

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs

@ -131,8 +131,7 @@ public class BlogPostAdminAppService : CmsKitAppServiceBase, IBlogPostAdminAppSe
[Authorize(CmsKitAdminPermissions.BlogPosts.Delete)] [Authorize(CmsKitAdminPermissions.BlogPosts.Delete)]
public virtual async Task DeleteAsync(Guid id) public virtual async Task DeleteAsync(Guid id)
{ {
await BlogPostRepository.DeleteAsync(id); await BlogPostManager.DeleteAsync(id);
await CommentRepository.DeleteByEntityTypeAsync(BlogPostConsts.EntityType, id.ToString());
} }
[Authorize(CmsKitAdminPermissions.BlogPosts.Publish)] [Authorize(CmsKitAdminPermissions.BlogPosts.Publish)]

2
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs

@ -113,7 +113,7 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi
await PageRepository.DeleteAsync(page); await PageRepository.DeleteAsync(page);
await PageCache.RemoveAsync(PageCacheItem.GetKey(page.Slug)); await PageCache.RemoveAsync(PageCacheItem.GetKey(page.Slug));
await CommentRepository.DeleteByEntityTypeAsync(PageConsts.EntityType, id.ToString()); await CommentRepository.DeleteByEntityTypeAndIdAsync(PageConsts.EntityType, id.ToString());
} }
[Authorize(CmsKitAdminPermissions.Pages.SetAsHomePage)] [Authorize(CmsKitAdminPermissions.Pages.SetAsHomePage)]

12
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogPostManager.cs

@ -4,6 +4,7 @@ using System.Threading.Tasks;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Services; using Volo.Abp.Domain.Services;
using Volo.CmsKit.Comments;
using Volo.CmsKit.Users; using Volo.CmsKit.Users;
namespace Volo.CmsKit.Blogs; namespace Volo.CmsKit.Blogs;
@ -12,17 +13,20 @@ public class BlogPostManager : DomainService
{ {
protected IBlogPostRepository BlogPostRepository { get; } protected IBlogPostRepository BlogPostRepository { get; }
protected IBlogRepository BlogRepository { get; } protected IBlogRepository BlogRepository { get; }
protected ICommentRepository CommentRepository { get; }
protected IDefaultBlogFeatureProvider BlogFeatureProvider { get; } protected IDefaultBlogFeatureProvider BlogFeatureProvider { get; }
public BlogPostManager( public BlogPostManager(
IBlogPostRepository blogPostRepository, IBlogPostRepository blogPostRepository,
IBlogRepository blogRepository, IBlogRepository blogRepository,
IDefaultBlogFeatureProvider blogFeatureProvider) IDefaultBlogFeatureProvider blogFeatureProvider,
ICommentRepository commentRepository)
{ {
BlogPostRepository = blogPostRepository; BlogPostRepository = blogPostRepository;
BlogRepository = blogRepository; BlogRepository = blogRepository;
BlogFeatureProvider = blogFeatureProvider; BlogFeatureProvider = blogFeatureProvider;
CommentRepository = commentRepository;
} }
public virtual async Task<BlogPost> CreateAsync( public virtual async Task<BlogPost> CreateAsync(
@ -66,6 +70,12 @@ public class BlogPostManager : DomainService
blogPost.SetSlug(newSlug); blogPost.SetSlug(newSlug);
} }
public virtual async Task DeleteAsync(Guid blogId)
{
await BlogPostRepository.DeleteAsync(blogId);
await CommentRepository.DeleteByEntityTypeAndIdAsync(BlogPostConsts.EntityType, blogId.ToString());
}
protected virtual async Task CheckSlugExistenceAsync(Guid blogId, string slug) protected virtual async Task CheckSlugExistenceAsync(Guid blogId, string slug)
{ {

2
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs

@ -50,7 +50,7 @@ public interface ICommentRepository : IBasicRepository<Comment, Guid>
Task<bool> ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default); Task<bool> ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default);
Task DeleteByEntityTypeAsync( Task DeleteByEntityTypeAndIdAsync(
[NotNull] string entityType, [NotNull] string entityType,
[NotNull] string entityId, [NotNull] string entityId,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default

2
modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs

@ -187,7 +187,7 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
.WhereIf(CommentApproveState.Waiting == commentApproveState, c => c.Comment.IsApproved == null); .WhereIf(CommentApproveState.Waiting == commentApproveState, c => c.Comment.IsApproved == null);
} }
public async Task DeleteByEntityTypeAsync(string entityType, string entityId, CancellationToken cancellationToken = default) public async Task DeleteByEntityTypeAndIdAsync(string entityType, string entityId, CancellationToken cancellationToken = default)
{ {
await (await GetDbSetAsync()).Where(x => x.EntityType == entityType && x.EntityId == entityId).ExecuteDeleteAsync(GetCancellationToken(cancellationToken)); await (await GetDbSetAsync()).Where(x => x.EntityType == entityType && x.EntityId == entityId).ExecuteDeleteAsync(GetCancellationToken(cancellationToken));
} }

2
modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs

@ -208,7 +208,7 @@ public class MongoCommentRepository : MongoDbRepository<ICmsKitMongoDbContext, C
.WhereIf(CommentApproveState.Waiting == commentApproveState, c => c.IsApproved == null); .WhereIf(CommentApproveState.Waiting == commentApproveState, c => c.IsApproved == null);
} }
public async Task DeleteByEntityTypeAsync(string entityType, string entityId, CancellationToken cancellationToken = default) public async Task DeleteByEntityTypeAndIdAsync(string entityType, string entityId, CancellationToken cancellationToken = default)
{ {
await (await GetDbContextAsync(cancellationToken)).Comments.DeleteManyAsync(x => x.EntityType == entityType && x.EntityId == entityId, GetCancellationToken(cancellationToken)); await (await GetDbContextAsync(cancellationToken)).Comments.DeleteManyAsync(x => x.EntityType == entityType && x.EntityId == entityId, GetCancellationToken(cancellationToken));
} }

7
modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Blogs/BlogPostPublicAppService.cs

@ -26,15 +26,18 @@ public class BlogPostPublicAppService : CmsKitPublicAppServiceBase, IBlogPostPub
protected IBlogPostRepository BlogPostRepository { get; } protected IBlogPostRepository BlogPostRepository { get; }
protected ITagRepository TagRepository { get; } protected ITagRepository TagRepository { get; }
protected BlogPostManager BlogPostManager { get; }
public BlogPostPublicAppService( public BlogPostPublicAppService(
IBlogRepository blogRepository, IBlogRepository blogRepository,
IBlogPostRepository blogPostRepository, IBlogPostRepository blogPostRepository,
ITagRepository tagRepository) ITagRepository tagRepository,
BlogPostManager blogPostManager)
{ {
BlogRepository = blogRepository; BlogRepository = blogRepository;
BlogPostRepository = blogPostRepository; BlogPostRepository = blogPostRepository;
TagRepository = tagRepository; TagRepository = tagRepository;
BlogPostManager = blogPostManager;
} }
public virtual async Task<BlogPostCommonDto> GetAsync( public virtual async Task<BlogPostCommonDto> GetAsync(
@ -88,7 +91,7 @@ public class BlogPostPublicAppService : CmsKitPublicAppServiceBase, IBlogPostPub
throw new AbpAuthorizationException(); throw new AbpAuthorizationException();
} }
await BlogPostRepository.DeleteAsync(id); await BlogPostManager.DeleteAsync(id);
} }
public async Task<string> GetTagNameAsync([NotNull] Guid tagId) public async Task<string> GetTagNameAsync([NotNull] Guid tagId)

Loading…
Cancel
Save