public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts(
            [FromQuery] ProductSpecParams productParams)
        {
            var spec       = new ProductsWithTypesAndBrandsSpecification(productParams);
            var countSpec  = new ProductWithFiltersForSpecification(productParams);
            var totalItems = await _productRepo.CountAsync(countSpec);

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



            /*      return products.Select(product => new ProductToReturnDto
             * {
             *  Id = product.Id,
             *      Name = product.Name,
             *      Description = product.Description,
             *      Price=product.Price,
             *      PictureUrl =product.PictureUrl,
             *      ProductBrand = product.ProductBrand.Name,
             *       ProductType = product.ProductType.Name,
             *
             * }).ToList(); */
        }
Example #2
0
        public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productSpecParams)
        {
            var spec       = new ProductsWithProductTypeAndBrandsSpecification(productSpecParams);
            var countSpec  = new ProductWithFiltersForSpecification(productSpecParams);
            var totalItems = await _productRepository.CountAsync(spec);

            var products = await _productRepository.ListAsync(spec);

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

            //var data = await _productRepository.ListAsync(spec);


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