public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productParams) { var contSpec = new ProductWithFilterForCountSpecification(productParams); var totalItems = await _productRepo.CountAsync(contSpec); var spec = new ProductsWithTypesAndBrandsSpecification(productParams); var products = await _productRepo.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 <Product> > > GetProductList( [FromQuery] ProductSpecParams productSpecParams) { var spec = new ProductWithDetailSpecification(productSpecParams); var countSpec = new ProductWithFilterForCountSpecification(productSpecParams); var productList = await _productRepository.ListAsync(spec); var totalItems = await _productRepository.CountAsync(countSpec); var products = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductDto> >(productList); return(Ok(new Pagination <ProductDto>() { Count = totalItems, PageIndex = productSpecParams.PageIndex, PageSize = productSpecParams.PageSize, Data = products })); }
public async Task <ActionResult <Pagination <ProductToReturnDTO> > > GetProducts([FromQuery] ProductSpecsParams productParams) { var spec = new ProductsWithTypesAndBrandsSpecification(productParams); var countSpec = new ProductWithFilterForCountSpecification(productParams); var totalItems = await this.productRepo.CountAsync(countSpec); var products = await this.productRepo.ListAsync(spec); var data = this.mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDTO> >(products); return(Ok(new Pagination <ProductToReturnDTO>(productParams.PageIndex, productParams.PageSize, totalItems, data))); // return products.Select(p => new ProductToReturnDTO() // { // Id = p.Id, // Name = p.Name, // Description = p.Description, // Price = p.Price, // PictureUrl = p.PictureUrl, // ProductBrand = p.ProductBrand.Name, // ProductType = p.ProductType.Name // }).ToList(); }