Esempio n. 1
0
        public async Task <ActionResult <ProductDTO> > UpdateProduct(int id, [FromBody] ProductDTO saveProductResource)
        {
            var validationResult = await _validator.ValidateAsync(saveProductResource);

            var requestIsInvalid = id == 0 || !validationResult.IsValid;

            if (requestIsInvalid)
            {
                return(BadRequest(validationResult.Errors));    // this needs refining, but for demo it is ok
            }
            var productToBeUpdate = await _productService.GetProductById(id);

            if (productToBeUpdate == null)
            {
                return(NotFound());
            }

            var product = _mapper.Map <ProductDTO, Products>(saveProductResource);

            await _productService.UpdateProduct(productToBeUpdate, product);

            var updatedProduct = await _productService.GetProductById(id);

            var updatedProductResource = _mapper.Map <Products, ProductDTO>(updatedProduct);

            return(Ok(updatedProductResource));
        }
Esempio n. 2
0
        public async Task <ActionResult <ProductDTO> > CreateProduct([FromBody] ProductDTO productDto)
        {
            var validator        = new SaveProductValidator(_productService);
            var validationResult = await validator.ValidateAsync(productDto);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors));
            }

            var productTOCreate = _mapper.Map <ProductDTO, Products>(productDto);



            var newProduct = await _productService.CreateProduct(productTOCreate);

            var product = await _productService.GetProductById(newProduct.Id);

            var productResource = _mapper.Map <Products, ProductDTO>(product);

            return(Ok(productResource));
        }