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));
            }
        }
Пример #2
0
        public async Task <IActionResult> Index(NoSqlSortFilterPageOptions options, [FromServices] IListNoSqlBooksService service)
        {
            var output = await service.SortFilterPageAsync(options);

            SetupTraceInfo();
            return(View(new NoSqlBookListCombinedDto(options, output)));
        }
Пример #3
0
        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))));
        }
Пример #4
0
        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);
        }