Ejemplo n.º 1
0
        public async Task <IHttpActionResult> PutProduct(Guid id, ProductDetailsViewModel product)
        {
            //verify data
            if (!ModelState.IsValid)
            {
                foreach (var v in ModelState.Values)
                {
                    foreach (var e in v.Errors)
                    {
                        if (e.Exception != null)
                        {
                            return
                                (BadRequest(
                                     "Something went wrong. Please check your form fields for disallowed or missing values."));
                        }
                    }
                }

                return(BadRequest(ModelState));
            }

            if (id != product.Product.ProductGuid)
            {
                return(BadRequest());
            }

            var stockController = new StocksController();

            db.Entry(product.Product).State = EntityState.Modified;

            //save data
            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProductExists(id))
                {
                    return(NotFound());
                }
                throw;
            }

            await stockController.UpdateStockItem(product.ProductStockItem, product.Product);

            return(StatusCode(HttpStatusCode.NoContent));
        }