public IActionResult Index(SqlSortFilterPageOptions options, [FromServices] ISqlEventsListBooksService service) { var output = service.SortFilterPage(options).ToList(); SetupTraceInfo(); return(View(new SqlBookListCombinedDto(options, output))); }
public JsonResult GetFilterSearchContent (SqlSortFilterPageOptions options, [FromServices] IBookEventsFilterDropdownService service) { var traceIdent = HttpContext.TraceIdentifier; return(Json( new TraceIndentGeneric <IEnumerable <DropdownTuple> >( traceIdent, service.GetFilterDropDownValues(options.FilterBy)))); }
public IQueryable <BookListDto> SortFilterPage(SqlSortFilterPageOptions options) { var booksQuery = _context.Books .AsNoTracking() .MapBookEventsToDto() .OrderBooksEventsBy(options.OrderByOptions) .FilterBooksEventsBy(options.FilterBy, options.FilterValue); options.SetupRestOfDto(booksQuery); return(booksQuery.Page(options.PageNum - 1, options.PageSize)); }
public async Task TestPageOk(int pageSize, int pageNum) //pageNum starts at 1 { //SETUP using (var context = new SqlDbContext(_options)) { var service = new SqlListBooksService(context); //ATTEMPT var filterPageOptions = new SqlSortFilterPageOptions { OrderByOptions = OrderByOptions.ByPriceLowestFirst, PageSize = pageSize, PageNum = pageNum }; var temp = service.SortFilterPage(filterPageOptions); //to set the PrevCheckState filterPageOptions.PageNum = pageNum; var books = await service.SortFilterPage(filterPageOptions).ToListAsync(); //VERIFY books.Count.ShouldEqual(Math.Min(pageSize, books.Count)); books.First().ActualPrice.ShouldEqual(1 + pageSize * (pageNum - 1)); } }
public SqlBookListCombinedDto(SqlSortFilterPageOptions sortFilterPageData, IEnumerable <BookListDto> booksList) { SortFilterPageData = sortFilterPageData; BooksList = booksList; }