public async Task <IReadOnlyList <Product> > GetProductsAsync(ProductSpecParams specParams) { var spec = new ProductAndCategorySpec(specParams); var products = await _productRepo.ListAsync(spec); return(products); }
public async Task <ActionResult> GetProducts([FromQuery] ProductSpecParams productParams) { var spec = new ProductAndCategorySpec(productParams); var countSpec = new ProductWithFiltersForCountSpecification(productParams); var totalItems = await _productService.CountAsync(countSpec); var products = await _productService.GetProductsAsync(productParams); if (products.Count > 0) { var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductDto> >(products); return(Ok(new Pagination <ProductDto>(productParams.PageIndex, productParams.PageSize, totalItems, data))); } else { return(NotFound(new ApiResponse(404, "Product is not found!!"))); } }