public async Task TestPageOk(int pageSize, int pageNum) //pageNum starts at 1 { //SETUP pageSize.ShouldBeInRange(1, 1000); using (var context = new NoSqlDbContext(_options)) { var service = new ListNoSqlBooksService(context); //ATTEMPT var filterPageOptions = new NoSqlSortFilterPageOptions { OrderByOptions = OrderByOptions.ByPriceLowestFirst, PageSize = pageSize, PageNum = pageNum }; var temp = await service.SortFilterPageAsync(filterPageOptions); //to set the PrevCheckState filterPageOptions.PageNum = pageNum; var books = await service.SortFilterPageAsync(filterPageOptions); //VERIFY books.Count.ShouldEqual(Math.Min(pageSize, books.Count)); books.First().ActualPrice.ShouldEqual(1 + pageSize * (pageNum - 1)); } }
public async Task <IActionResult> Index(NoSqlSortFilterPageOptions options, [FromServices] IListNoSqlBooksService service) { var output = await service.SortFilterPageAsync(options); SetupTraceInfo(); return(View(new NoSqlBookListCombinedDto(options, output))); }
public async Task <JsonResult> GetFilterSearchContent (NoSqlSortFilterPageOptions options, [FromServices] IBookNoSqlFilterDropdownService service) { var traceIdent = HttpContext.TraceIdentifier; return(Json( new TraceIndentGeneric <IEnumerable <DropdownTuple> >( traceIdent, await service.GetFilterDropDownValuesAsync(options.FilterBy)))); }
public async Task <IList <BookListNoSql> > SortFilterPageAsync(NoSqlSortFilterPageOptions options) { var booksFound = await _context.Books .AsNoTracking() .OrderBooksBy(options.OrderByOptions) .FilterBooksBy(options.FilterBy, options.FilterValue) .Page(options.PageNum - 1, options.PageSize) .ToListAsync(); options.SetupRestOfDto(booksFound.Count); return(booksFound); }