|
|
|
@ -42,12 +42,14 @@ public class EfCoreBlogPostRepository : EfCoreRepository<CmsKitDbContext, BlogPo |
|
|
|
string filter = null, |
|
|
|
Guid? blogId = null, |
|
|
|
Guid? authorId = null, |
|
|
|
BlogPostStatus? statusFilter = 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)); |
|
|
|
.WhereIf(blogId.HasValue, x => x.BlogId == blogId) |
|
|
|
.WhereIf(authorId.HasValue, x => x.AuthorId == authorId) |
|
|
|
.WhereIf(statusFilter.HasValue, x => x.Status == statusFilter) |
|
|
|
.WhereIf(!string.IsNullOrEmpty(filter), x => x.Title.Contains(filter) || x.Slug.Contains(filter)); |
|
|
|
|
|
|
|
var count = await queryable.CountAsync(GetCancellationToken(cancellationToken)); |
|
|
|
return count; |
|
|
|
@ -57,6 +59,7 @@ public class EfCoreBlogPostRepository : EfCoreRepository<CmsKitDbContext, BlogPo |
|
|
|
string filter = null, |
|
|
|
Guid? blogId = null, |
|
|
|
Guid? authorId = null, |
|
|
|
BlogPostStatus? statusFilter = null, |
|
|
|
int maxResultCount = int.MaxValue, |
|
|
|
int skipCount = 0, |
|
|
|
string sorting = null, |
|
|
|
@ -70,7 +73,8 @@ public class EfCoreBlogPostRepository : EfCoreRepository<CmsKitDbContext, BlogPo |
|
|
|
var queryable = blogPostsDbSet |
|
|
|
.WhereIf(blogId.HasValue, x => x.BlogId == blogId) |
|
|
|
.WhereIf(!string.IsNullOrWhiteSpace(filter), x => x.Title.Contains(filter) || x.Slug.Contains(filter)) |
|
|
|
.WhereIf(authorId.HasValue, x => x.AuthorId == authorId); |
|
|
|
.WhereIf(authorId.HasValue, x => x.AuthorId == authorId) |
|
|
|
.WhereIf(statusFilter.HasValue, x => x.Status == statusFilter); |
|
|
|
|
|
|
|
queryable = queryable.OrderBy(sorting.IsNullOrEmpty() ? $"{nameof(BlogPost.CreationTime)} desc" : sorting); |
|
|
|
|
|
|
|
|