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)]
public virtual async Task DeleteAsync(Guid id)
{
await BlogPostRepository.DeleteAsync(id);
await CommentRepository.DeleteByEntityTypeAsync(BlogPostConsts.EntityType, id.ToString());
await BlogPostManager.DeleteAsync(id);
}
[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 PageCache.RemoveAsync(PageCacheItem.GetKey(page.Slug));
await CommentRepository.DeleteByEntityTypeAsync(PageConsts.EntityType, id.ToString());
await CommentRepository.DeleteByEntityTypeAndIdAsync(PageConsts.EntityType, id.ToString());
}
[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.Domain.Entities;
using Volo.Abp.Domain.Services;
using Volo.CmsKit.Comments;
using Volo.CmsKit.Users;
namespace Volo.CmsKit.Blogs;
@ -12,17 +13,20 @@ public class BlogPostManager : DomainService
{
protected IBlogPostRepository BlogPostRepository { get; }
protected IBlogRepository BlogRepository { get; }
protected ICommentRepository CommentRepository { get; }
protected IDefaultBlogFeatureProvider BlogFeatureProvider { get; }
public BlogPostManager(
IBlogPostRepository blogPostRepository,
IBlogRepository blogRepository,
IDefaultBlogFeatureProvider blogFeatureProvider)
IDefaultBlogFeatureProvider blogFeatureProvider,
ICommentRepository commentRepository)
{
BlogPostRepository = blogPostRepository;
BlogRepository = blogRepository;
BlogFeatureProvider = blogFeatureProvider;
CommentRepository = commentRepository;
}
public virtual async Task<BlogPost> CreateAsync(
@ -66,6 +70,12 @@ public class BlogPostManager : DomainService
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)
{

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 DeleteByEntityTypeAsync(
Task DeleteByEntityTypeAndIdAsync(
[NotNull] string entityType,
[NotNull] string entityId,
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);
}
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));
}

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);
}
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));
}

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

Loading…
Cancel
Save