public void DynamicCriteriaExtensions_ApplyDynamicPaginatedCriteria_ReturnPaginatedFilteredResult() { // arrange DbHelper.CleanBlog(_dbContext); DbHelper.SeedBulkBlogs(_dbContext); var filteredList = _dbContext.Blogs .OrderByDescending(o => o.Id) .Where(q => q.Id > 10) .ToList(); var expected = new Paginated <Blog>(filteredList.Skip(3).Take(3).ToList(), filteredList.Count, 2, 3); // act var criteria = new DynamicPaginatedCriteria { Sorts = "Id desc", FilterClause = "Id > @0", FilterParameters = new object[] { 10 }, CurrentPage = 2, PageSize = 3 }; var actual = _dbContext.Blogs.ToPaginated(criteria); // assert Assert.Equal(expected, actual, new PaginatedEqualityComparer <Blog>()); }
public async Task <IPaginated <TDto> > GetPaginated <TDto>(DynamicPaginatedCriteria criteria, CancellationToken cancellationToken) { return(await Queryable .ProjectTo <TDto>(Mapper.ConfigurationProvider) .ApplyCriteria(criteria) .ToPaginatedAsync(criteria, cancellationToken)); }
public virtual async Task <IPaginated <TEntity> > GetPaginated(DynamicPaginatedCriteria criteria, CancellationToken cancellationToken = default) { return(await DbSet.ApplyCriteria(criteria) .ToPaginatedAsync(criteria, cancellationToken)); }