Beispiel #1
0
        public async Task <ActionResult <IReadOnlyList <Pagination> > > GetProducts([FromQuery] ProductSpecParams productParams)
        {
            var spec = new ProductsWithTypesAndBrandsSpecification(productParams);

            var countSpec  = new ProductWithFiltersForCountSpecifications(productParams);
            var totalItems = await _productRepo.CountAsync(countSpec);

            //var products = await _productRepo.ListAllAsync();
            var products = await _productRepo.ListAsync(spec);

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

            return(Ok(new Pagination <ProductToReturnDtos>(productParams.PageSize, productParams.PageIndex, totalItems, data)));

            // return products.Select(product => new ProductToReturnDtos
            // {
            //     Id = product.Id,
            //     Name = product.Name,
            //     Description = product.Description,
            //     Price = product.Price,
            //     PictureUrl = product.PictureUrl,
            //     ProductBrand = product.ProductBrand.Name,
            //     ProductType = product.ProductType.Name
            // }).ToList();
        }
Beispiel #2
0
        public async Task <ActionResult <Pagination <ProductsToReturnDto> > > GetProducts([FromQuery] ProductSpecParams pruductParams)
        {
            var spec      = new ProductsWithTypesAndBrandsSpecifications(pruductParams);
            var countSpec = new ProductWithFiltersForCountSpecifications(pruductParams);
            var products  = await _productsRepo.ListAsync(spec);

            var totalItems = await _productsRepo.CountAsync(countSpec);

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

            return(Ok(new Pagination <ProductsToReturnDto>(pruductParams.PageIndex, pruductParams.PageSize, totalItems, data)));
        }
Beispiel #3
0
        public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productParams)
        {
            var spec = new ProductsWithBrandsAndTypesSpecification(productParams);

            var countSpec = new ProductWithFiltersForCountSpecifications(productParams);

            var totalItems = await _repoProduct.CountAsync(countSpec);

            var mappedData = _mapper.Map <IReadOnlyList <ProductToReturnDto> >(await _repoProduct.GetAllAsync(spec));

            var returnValue = new Pagination <ProductToReturnDto>(productParams.PageIndex, productParams.PageSize, totalItems, mappedData);

            return(Ok(returnValue));
        }