public async Task <ActionResult <Pagination <ProductToReturnDto> > > GerProducts( [FromQuery] ProductSpecParams productParams) { var spec = new ProductWithTypesAndBrandsSpecification(productParams); var countSpec = new ProductWithFiltersForCountSpecificication(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))); // return product.Select(product => new ProductToReturnDto // { // Id = product.Id, // Name = product.Name, // Description = product.Description, // PictureUrl = product.PictureUrl, // Price = product.Price, // ProductBrand = product.ProductBrand.Name, // ProductType = product.ProductType.Name // }).ToList(); }
public async Task <GetProductsQueryResponse> Handle(GetProductsQueryRequest req, CancellationToken cancellationToken) { var spec = new ProductsWithTypesAndBrandsSpecification(req.ProductParams); var countSpec = new ProductWithFiltersForCountSpecificication(req.ProductParams); return(new GetProductsQueryResponse { Data = await _productsRepo.ListAsync(spec), TotalItems = await _productsRepo.CountAsync(countSpec) });; }
public async Task <ActionResult <Pagination <ProductDto> > > GetProducts([FromQuery] SpecParams specParams) { var spec = new ProductsWithTypesAndBrandsSpecification(specParams); var countSpec = new ProductWithFiltersForCountSpecificication(specParams); var totalItems = await _repository.CountAsync(countSpec); var products = await _repository.ListAsync(spec); var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductDto> >(products); return(Ok(new Pagination <ProductDto>(specParams.PageIndex, specParams.PageSize, totalItems, data))); }
public async Task <IActionResult> GetProducts([FromQuery] ProductSpecParams productSpecParams) { var spec = new ProductsWithTypesAndBrandsSpecification(productSpecParams); var countSpec = new ProductWithFiltersForCountSpecificication(productSpecParams); var totalItem = await _productsRepo.CountAsync(countSpec); var products = await _productsRepo.ListAsync(spec); var res = _mapper.Map <IReadOnlyList <ProductToReturnDto> >(products); return(Ok(new Pagination <ProductToReturnDto>(productSpecParams.PageIndex, productSpecParams.PageSize, totalItem, res))); }
//[Cached(600)] public async Task <ActionResult <Pagination <Product> > > GetProducts([FromQuery] ProductSpecParams productSpecParams) { var spec = new ProductsWithtypesAndBrandsSpecification(productSpecParams); var countSpec = new ProductWithFiltersForCountSpecificication(productSpecParams); var totalItems = await _productRepository.CountAsync(countSpec); var products = await _productRepository.ListAsync(spec); var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products); _logger.LogInformation("Products load"); return(Ok(new Pagination <ProductToReturnDto>(productSpecParams.PageIndex, productSpecParams.PageSize, totalItems, data))); }
public async Task <ActionResult <IReadOnlyList <ProductModel> > > GetProducts([FromQuery] ProductSpecParams productParams) { //var products = await this.repository.GetProductsAsync(); var spec = new ProductsWithTypeAndBrandSpecification(productParams); var countSpec = new ProductWithFiltersForCountSpecificication(productParams); var totalItems = await this.productRepo.CountAsync(countSpec); var products = await this.productRepo.ListAsync(spec); var data = mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductModel> >(products); return(Ok(new Pagination <ProductModel>(productParams.PageIndex, productParams.PageSize, totalItems, data))); }