コード例 #1
0
        public async Task Browse_Async_method_Should_Work_Correctly()
        {
            const int          ProductQuantity = 100;
            IProductRepository repository      = new ProductRepository(DbContextHelper.GetInMemory());

            List <Product> generatedProducts = new ProductGenerator().Generate(ProductQuantity).ToList();

            foreach (var product in generatedProducts)
            {
                await repository.AddAsync(product);
            }
            Product firstProduct = generatedProducts.First();
            var     @params      = new PageProductQuery()
            {
                Subcategory = firstProduct.Subcategory.Slug,
                Category    = firstProduct.Subcategory.Category.Slug,
                PageNumber  = 2,
                PageSize    = 30
            };

            //ACT
            PagedList <Product> productsFromRepo = await repository.BrowseAsync(@params.PageNumber,
                                                                                @params.PageSize, @params.Category, @params.Subcategory);

            //ASSERT
            productsFromRepo.Should().HaveCount(@params.PageSize);
            productsFromRepo.PageSize.Should().Be(@params.PageSize);
            productsFromRepo.PageNumber.Should().Be(@params.PageNumber);
            productsFromRepo.TotalCount.Should().Be(ProductQuantity);
        }
コード例 #2
0
        public async Task <IActionResult> GetProducts([FromQuery] PageProductQuery query)
        {
            var product = await _mediator.Send(query);

            Response.AddPagination(product.PageNumber, product.PageSize, product.TotalCount, product.TotalPages);

            return(Ok(product.Products));
        }