Ejemplo n.º 1
0
        public async Task <ActionResult <ProductToReturnDto> > getProduct(int id)
        {
            var spec    = new ProductsWithTypesAndBrandsSpecifications(id);
            var product = await _productsRepo.GetEntityWithSpec(spec);

            return(_mapper.Map <Product, ProductToReturnDto>(product));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult <ProductToReturnDto> > GetProduct(int id)
        {
            //return await productsRepo.GetByIdAsync(id);
            var spec    = new ProductsWithTypesAndBrandsSpecifications(id);
            var product = await productsRepo.GetEntityWithSpecification(spec);

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

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

            return(mapper.Map <Product, ProductToReturnDto>(product));
        }
Ejemplo n.º 3
0
        public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productParams)
        {
            //var products = await repo.GetProductsAsync();

            var spec = new ProductsWithTypesAndBrandsSpecifications(productParams);

            var countSpec = new ProductWithFiltersForCountSpecification(productParams);

            var totalItems = await productsRepo.CountAsync(countSpec);

            //var products = await productsRepo.ListAllAsync();

            var products = await productsRepo.ListAsync(spec);


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

            //return Ok(products);

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

            return(Ok(new Pagination <ProductToReturnDto>(productParams.PageIndex, productParams.PageSize, totalItems, data)));
        }
Ejemplo n.º 4
0
        public async Task <ActionResult <Pagination <ProductToReturnDto> > > GetProducts([FromQuery] ProductSpecParams productSpecParams)
        {
            var spec     = new ProductsWithTypesAndBrandsSpecifications(productSpecParams);
            var products = await _productRepo.ListAsync(spec);

            var countSpec = new ProductWithFiltersForCountSpecification(productSpecParams);
            var count     = await _productRepo.CountAsync(countSpec);

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

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



            //return products.Select(products => new ProductToReturnDto
            //{
            //  Id = products.Id,
            //Name = products.Name,
            // Description = products.Description,
            //PictureUrl = products.PictureUrl,
            // Price = products.Price,
            // ProductBrand = products.ProductBrand.Name,
            //  ProductType = products.ProductType.Name
            //}

            //).ToList();
        }
Ejemplo n.º 5
0
        public async Task <ActionResult <IReadOnlyList <ProductToReturnDto> > > GetProducts()
        {
            var spec = new ProductsWithTypesAndBrandsSpecifications();

            var products = await _productRepo.ListAsync(spec);

            return(Ok(_mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductToReturnDto> >(products)));
        }
Ejemplo n.º 6
0
        public async Task <ActionResult <ProductsToReturnDto> > GetProduct(int id)
        {
            var spec    = new ProductsWithTypesAndBrandsSpecifications(id);
            var product = await _productsRepo.GetEntityWithSpec(spec);

            if (product == null)
            {
                return(NotFound(new ApiResponse(404)));
            }
            return(_mapper.Map <Product, ProductsToReturnDto>(product));
        }
Ejemplo n.º 7
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)));
        }
Ejemplo n.º 8
0
        public async Task <ActionResult <ProductToReturnDto> > GetProduct(int id)
        {
            //List<Expression<Func<Product, object>>> Includes = new List<Expression<Func<Product, object>>>(); ;
            // Expression<Func<Product, bool>> Criteria;

            // Includes.Add(x => x.ProductBrand);
            // Includes.Add(x => x.ProductType);
            // Criteria = (x => x.ProductTypeId == id);

            var spec    = new ProductsWithTypesAndBrandsSpecifications(id);
            var product = await _productRepo.GetEntityWithSpec(spec);

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

            return(_mapper.Map <Product, ProductToReturnDto>(product));
        }