diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs index ea50d48a5d..adace8bd9a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs +++ b/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)] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs index a77463dcde..2860946490 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs +++ b/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)] diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogPostManager.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogPostManager.cs index 9e21078707..029c8482ae 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/BlogPostManager.cs +++ b/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 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) { diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs index 036503b054..c8c267383e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs @@ -50,7 +50,7 @@ public interface ICommentRepository : IBasicRepository Task ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default); - Task DeleteByEntityTypeAsync( + Task DeleteByEntityTypeAndIdAsync( [NotNull] string entityType, [NotNull] string entityId, CancellationToken cancellationToken = default diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs index 89b314615d..5dff9d72d6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs @@ -187,7 +187,7 @@ public class EfCoreCommentRepository : EfCoreRepository 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)); } diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs index 4ea37cf14f..fab729fcd2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs @@ -208,7 +208,7 @@ public class MongoCommentRepository : MongoDbRepository 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)); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Blogs/BlogPostPublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Blogs/BlogPostPublicAppService.cs index 4a9875990d..9b831ca8a6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Blogs/BlogPostPublicAppService.cs +++ b/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 GetAsync( @@ -88,7 +91,7 @@ public class BlogPostPublicAppService : CmsKitPublicAppServiceBase, IBlogPostPub throw new AbpAuthorizationException(); } - await BlogPostRepository.DeleteAsync(id); + await BlogPostManager.DeleteAsync(id); } public async Task GetTagNameAsync([NotNull] Guid tagId)