public async Task <ActionResult <Pagination <ProductToReturnDTO> > > GetProducts(
            [FromQuery] ProductSpecParam productParams)
        {
            var spec       = new ProductsWithTypesSpecification(productParams);
            var countSpec  = new ProductWithFiltersForCountSPecification(productParams);
            var totalItems = await _productsRepo.CountAsync(countSpec);

            var products = await _productsRepo.ListAsync(spec);

            var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDTO> >(products);

            return(Ok(new Pagination <ProductToReturnDTO>(productParams.PageIndex, productParams.PageSize, totalItems, data)));
        }
        public async Task <ActionResult <Pagination <ProductDTO> > > GetProducts([FromQuery] ProductSpecParam ProductParams)
        {
            var spec = new ProductswithBrandsAndTypes(ProductParams);

            var CountSpec = new ProductWithFilterCountSpecification(ProductParams);

            var totalItems = _productRepo.CountAsync(CountSpec);

            var products = await _productRepo.ListAsync(spec);

            var Data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductDTO> >(products);

            return(Ok(new Pagination <ProductDTO>(ProductParams.pageSize, ProductParams.pageIndex, totalItems.Result, Data)));
        }
Exemple #3
0
        public async Task <IActionResult> GetProducts(
            [FromQuery] ProductSpecParam productSpecParam)
        {
            var spec = new ProductsWithTypesAndBrandsSpecification(productSpecParam);

            var countSpec = new ProductWithFilterCountSpecification(productSpecParam);

            var products = await _productRepository.ListAsync(spec);

            var totalItems = await _productRepository.CountAsync(countSpec);

            var mapData = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductDto> >(products);

            return(OkWithPagination(productSpecParam.PageIndex, productSpecParam.PageSize, totalItems, mapData));

            //return Ok(new Pagination<ProductDto>(productSpecParam.PageIndex, productSpecParam.PageSize, totalItems, mapData));
        }
Exemple #4
0
        public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProductsAsync([FromQuery] ProductSpecParam productSpecParam)
        {
            ProductsWithBrandsAndTypesSpec spec = new ProductsWithBrandsAndTypesSpec(productSpecParam);
            ProuductsWithFilterCountSpec   countProductsAfterFilter = new ProuductsWithFilterCountSpec(productSpecParam);
            int count = await _repo.GetCountAsync(countProductsAfterFilter);

            var productDto = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(await _repo.GetAllBySpecAsync(spec));
            Pagination <ProductToReturnDto> pagination = new Pagination <ProductToReturnDto>(productSpecParam.PageSize, productSpecParam.PageIndex, count, productDto);

            return(Ok(pagination));
        }
        public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProductsAsync([FromQuery] ProductSpecParam productParameter)
        {
            var spec      = new ProductsWithTypesAndBrandsSpecification(productParameter);
            var countSpec = new ProductWithFiltersForCountSpecification(productParameter);
            var products  = await _productRepo.ListAsync(spec); // resource after paging

            var totalItems = await _productRepo.CountAsync(countSpec);

            var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products);

            return(Ok(new Pagination <ProductToReturnDto>(productParameter.PageIndex, productParameter.PageSize, totalItems, data)));
        }