Beispiel #1
0
        public async Task <ActionResult <ProductDTO> > GetProduct(int id)
        {
            var spec    = new ProductsWithBrandsAndTypesSpecification(id);
            var product = await _productRepo.GetEntityWithSpec(spec);

            return(_mapper.Map <Product, ProductDTO>(product));
        }
Beispiel #2
0
        public async Task <ActionResult <ProductToReturnDto> > GetProduct(int id)
        {
            // return Ok(await _productsRepo.GetByIdAsync(id));
            var spec = new ProductsWithBrandsAndTypesSpecification(id);
            //return await _productsRepo.GetEntityWithSpec(spec);
            var product = await _productsRepo.GetEntityWithSpec(spec);

            if (product == null)
            {
                return(NotFound(new ApiResponse(404)));
            }

            /*return 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
             * };*/

            return(_mapper.Map <Product, ProductToReturnDto>(product));
        }
Beispiel #3
0
        public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productParams)
        //string sort, int? brandId, int? typeId)
        {
            var spec = new ProductsWithBrandsAndTypesSpecification(productParams);
            //(sort, brandId, typeId);

            var countSpec = new ProductWithFiltersForCountSpecification(productParams);

            var totalItems = await _productsRepo.CountAsync(countSpec);

            var products = await _productsRepo.ListAsync(spec);

            /*return products.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();*/

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

            return(Ok(new Pagination <ProductToReturnDto>(productParams.PageIndex, productParams.PageSize, totalItems, data)));
        }
Beispiel #4
0
        public async Task <ActionResult <IReadOnlyList <ProductToReturnDTO> > > GetProducts(string sort, int?brandId, int?typeId)
        {
            var spec = new ProductsWithBrandsAndTypesSpecification(sort, brandId, typeId);

            var products = await _productRepo.ListAsync(spec);

            return(Ok(_mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDTO> >(products)));
        }
        public async Task <ActionResult <Pagination <DTOProducts> > > GetProduct(int id)
        {
            var spec    = new ProductsWithBrandsAndTypesSpecification(id);
            var product = await _productsRepo.GetEntityWithSpec(spec);

            if (product == null)
            {
                return(NotFound(new ApiResponse(404)));
            }
            return(Ok(_mapper.Map <Products, DTOProducts>(product)));
        }
Beispiel #6
0
        public async Task <ActionResult <ProductToReturnDTO> > GetProduct(int id)
        {
            var spec = new ProductsWithBrandsAndTypesSpecification(id);

            var product = await _productRepo.GetEntityFromSpec(spec);

            if (product == null)
            {
                return(NotFound(new ApiErrorResponse(404)));
            }

            return(_mapper.Map <Product, ProductToReturnDTO>(product));
        }
Beispiel #7
0
        public async Task <ActionResult <Pagination <Product> > > GetProducts([FromQuery] ProductSpecParam productParams)
        {
            var spec       = new ProductsWithBrandsAndTypesSpecification(productParams);
            var countSpec  = new ProductsWithBrandsAndTypesSpecification(productParams);
            var totalItems = await _productRepo.CountAsync(countSpec);

            var products = await _productRepo.ListAsync(spec);

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

            return(Ok(new Pagination <ProductDTO>(productParams.PageIndex,
                                                  productParams.PageSize, totalItems, data)));
        }
Beispiel #8
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));
        }
        public async Task <ActionResult <Product> > GetProduct(int id)
        {
            var spec = new ProductsWithBrandsAndTypesSpecification(id);

            var product = await _productRepo.GetEntityWithSpec(spec);

            if (product == null)
            {
                return(NotFound(new ApiResponse(404)));
            }

            var productToReturn = _mapper.Map <ProductToReturnDto>(product);

            return(Ok(productToReturn));
        }
        public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productParams)
        {
            var spec = new ProductsWithBrandsAndTypesSpecification(productParams);

            var countSpec = new ProductsCountSpecification(productParams);

            var totalItems = await _productRepo.CountAsync(countSpec);

            var products = await _productRepo.ListAsync(spec);

            var productsToReturn = _mapper.Map <List <ProductToReturnDto> >(products);

            return(Ok(new Pagination <ProductToReturnDto>(productParams.PageIndex,
                                                          productParams.PageSize, totalItems, productsToReturn)));
        }
Beispiel #11
0
        public async Task <ActionResult <ProductToReturnDto> > GetProducts(long id)
        {
            var spec = new ProductsWithBrandsAndTypesSpecification(id);

            var current = await _repoProduct.GetEntityWithSpec(spec);

            if (current == null)
            {
                return(NotFound(new ApiResponse(404)));
            }

            var mapped = _mapper.Map <ProductToReturnDto>(current);

            return(mapped);
        }
        public async Task <ActionResult <IReadOnlyList <DTOProducts> > > GetProducts(
            [FromQuery] ProductsSpecParams ProductsParams)
        {
            var spec      = new ProductsWithBrandsAndTypesSpecification(ProductsParams);
            var countSpec = new ProductsWithFiltersForCountSpecification(ProductsParams);
            var products  = await _productsRepo.ListWithSpecAsync(spec);

            var totalcount = await _productsRepo.CountAsync(countSpec);

            var data = _mapper.Map <IReadOnlyList <Products>, IReadOnlyList <DTOProducts> >(products);

            if (data == null)
            {
                return(NotFound(new ApiResponse(404)));
            }
            return(Ok(new Pagination <DTOProducts>(ProductsParams.PageSize, ProductsParams.PageIndex, totalcount, data)));
        }