Esempio n. 1
0
        public async Task <ActionResult <ProductToReturnDto> > GetProduct(int id)
        {
            //return await _productsRepos.GetByIdAsync(id); // eski 1

            var spec = new ProductWithTypesAndBrandSpecification(id);

            var product = await _productsRepos.GetEntityWithSpec(spec);

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

            // eski 2

            /* 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));
        }
Esempio n. 2
0
        public async Task <ActionResult> GetProducts([FromQuery] ProductSpecParams productParams)
        {
            var spec = new ProductWithTypesAndBrandSpecification(productParams);

            var countSpec = new ProductWithFiltersCountSpecification(productParams);

            var totalItems = await productsRepo.CountAsync(countSpec);

            var products = await productsRepo.GetListWithSpec(spec);

            var result = mapper.Map <IReadOnlyList <ProductDTO> >(products);

            return(Ok(new PaginationResult <ProductDTO>(productParams.PageIndex, productParams.PageSize, totalItems, result)));
        }
Esempio n. 3
0
        public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productParams)
        {
            var spec = new ProductWithTypesAndBrandSpecification(productParams);

            var countSpec = new ProductWithFiltersForCountSpecification(productParams);

            var totalItems = await _productsRepos.CountAsync(countSpec);

            var products = await _productsRepos.ListAsync(spec);

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

            return(Ok(new Pagination <ProductToReturnDto>(productParams.PageIndex, productParams.PageSize, totalItems, data)));
        }
Esempio n. 4
0
        public async Task <ActionResult> GetProduct([FromRoute] int id)
        {
            var spec = new ProductWithTypesAndBrandSpecification(id);

            var product = await productsRepo.GetEntityWithSpec(spec);

            if (product == null)
            {
                return(NotFound(new ApiResponse((int)HttpStatusCode.NotFound)));
            }

            var result = mapper.Map <ProductDTO>(product);

            return(Ok(result));
        }