Пример #1
0
        public IActionResult Index(SqlSortFilterPageOptions options, [FromServices] ISqlEventsListBooksService service)
        {
            var output = service.SortFilterPage(options).ToList();

            SetupTraceInfo();
            return(View(new SqlBookListCombinedDto(options, output)));
        }
Пример #2
0
        public JsonResult GetFilterSearchContent
            (SqlSortFilterPageOptions options, [FromServices] IBookEventsFilterDropdownService service)
        {
            var traceIdent = HttpContext.TraceIdentifier;

            return(Json(
                       new TraceIndentGeneric <IEnumerable <DropdownTuple> >(
                           traceIdent,
                           service.GetFilterDropDownValues(options.FilterBy))));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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;
 }