예제 #1
0
        public async Task <ActionResult <ProductResource> > UpdateProduct(int id, [FromBody] SaveProductResource saveProductResource)
        {
            var validator        = new SaveProductResourceValidator();
            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 <SaveProductResource, Product>(saveProductResource);

            await _productService.UpdateProduct(productToBeUpdate, product);

            var updatedProduct = await _productService.GetProductById(id);

            var updatedProductResource = _mapper.Map <Product, ProductResource>(updatedProduct);

            return(Ok(updatedProductResource));
        }
예제 #2
0
        public async Task <ActionResult <ProductResource> > CreateProduct([FromBody] SaveProductResource saveProductResource)
        {
            var validator        = new SaveProductResourceValidator();
            var validationResult = await validator.ValidateAsync(saveProductResource);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok
            }
            var productToCreate = _mapper.Map <SaveProductResource, Product>(saveProductResource);

            var newProduct = await _productService.CreateProduct(productToCreate);

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

            var productResource = _mapper.Map <Product, ProductResource>(product);

            return(Ok(productResource));
        }