Пример #1
0
        public async Task <ActionResult <ProductViewModel> > GetProduct(int id)
        {
            var includeBrandsAndTypesQuery = new ProductsIncludingTypesAndBrands(id);
            var product = await _unitOfWork.Service <Product>().GetOneWithSpecification(includeBrandsAndTypesQuery);

            if (product == null)
            {
                return(NotFound(new APIResponse(StatusCodes.Status404NotFound)));
            }

            return(_mapper.Map <Product, ProductViewModel>(product));
        }
Пример #2
0
        public async Task <ActionResult <Pagination <ProductViewModel> > > GetProducts([FromQuery] ProductSearchParameters productSearchParameters)
        {
            var includeBrandsAndTypesQuery = new ProductsIncludingTypesAndBrands(productSearchParameters);
            var countParameters            = new CountedProducts(productSearchParameters);
            var totalItems = await _unitOfWork.Service <Product>().CountAsync(countParameters);

            var products = await _unitOfWork.Service <Product>().ListAllWithSpecificationAsync(includeBrandsAndTypesQuery);

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

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