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))); }
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)); }
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))); }