From 0cd4c2bbf546bf8857e3448871079d554513a863 Mon Sep 17 00:00:00 2001 From: Musa Demir Date: Wed, 23 Mar 2022 23:14:53 +0300 Subject: [PATCH] allow filtering by user for GetCountAsync function --- .../Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs | 2 +- .../Volo.CmsKit.Domain/Volo/CmsKit/Blogs/IBlogPostRepository.cs | 1 + .../Volo/CmsKit/Blogs/EfCoreBlogPostRepository.cs | 2 ++ .../Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs | 2 ++ .../Volo/CmsKit/Public/Blogs/BlogPostPublicAppService.cs | 2 +- 5 files changed, 7 insertions(+), 2 deletions(-) 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 fbea1d81c7..58ea5b9b83 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 @@ -92,7 +92,7 @@ public class BlogPostAdminAppService : CmsKitAppServiceBase, IBlogPostAdminAppSe var blogPosts = await BlogPostRepository.GetListAsync(input.Filter, input.BlogId, input.AuthorId, input.MaxResultCount, input.SkipCount, input.Sorting); - var count = await BlogPostRepository.GetCountAsync(input.Filter); + var count = await BlogPostRepository.GetCountAsync(input.Filter, input.BlogId, input.AuthorId); var dtoList = blogPosts.Select(x => { diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/IBlogPostRepository.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/IBlogPostRepository.cs index 6e650113d3..fed0eed037 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/IBlogPostRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Blogs/IBlogPostRepository.cs @@ -12,6 +12,7 @@ public interface IBlogPostRepository : IBasicRepository Task GetCountAsync( string filter = null, Guid? blogId = null, + Guid? authorId = null, CancellationToken cancellationToken = default); Task> GetListAsync( diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Blogs/EfCoreBlogPostRepository.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Blogs/EfCoreBlogPostRepository.cs index cbd8fa3cfe..cfc39a62c7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Blogs/EfCoreBlogPostRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Blogs/EfCoreBlogPostRepository.cs @@ -41,10 +41,12 @@ public class EfCoreBlogPostRepository : EfCoreRepository GetCountAsync( string filter = null, Guid? blogId = null, + Guid? authorId = null, CancellationToken cancellationToken = default) { var queryable = (await GetDbSetAsync()) .WhereIf(blogId.HasValue, x => x.BlogId == blogId) + .WhereIf(authorId.HasValue, x => x.AuthorId == authorId) .WhereIf(!string.IsNullOrEmpty(filter), x => x.Title.Contains(filter) || x.Slug.Contains(filter)); var count = await queryable.CountAsync(GetCancellationToken(cancellationToken)); diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs index 3b04f46fb6..5f72246d93 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Blogs/MongoBlogPostRepository.cs @@ -42,6 +42,7 @@ public class MongoBlogPostRepository : MongoDbRepository GetCountAsync( string filter = null, Guid? blogId = null, + Guid? authorId = null, CancellationToken cancellationToken = default) { var token = GetCancellationToken(cancellationToken); @@ -49,6 +50,7 @@ public class MongoBlogPostRepository : MongoDbRepository>(!string.IsNullOrWhiteSpace(filter), x => x.Title.Contains(filter) || x.Slug.Contains(filter)) .WhereIf>(blogId.HasValue, x => x.BlogId == blogId) + .WhereIf>(authorId.HasValue, x => x.AuthorId == authorId) .CountAsync(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 62a970cf2f..a9121a5c2b 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 @@ -42,7 +42,7 @@ public class BlogPostPublicAppService : CmsKitPublicAppServiceBase, IBlogPostPub input.SkipCount, input.Sorting); return new PagedResultDto( - await BlogPostRepository.GetCountAsync(blogId: blog.Id), + await BlogPostRepository.GetCountAsync(blogId: blog.Id, authorId: input.AuthorId), ObjectMapper.Map, List>(blogPosts)); }