public IHttpActionResult UpdatePricelist(UpdatePricelistBindingModel bindingModel) { HttpStatusCode response = unitOfWork.Pricelists.UpdatePricelist(bindingModel); if (response == HttpStatusCode.OK) { return(Ok()); } if (response == HttpStatusCode.Conflict) { return(Conflict()); } return(NotFound()); }
public HttpStatusCode UpdatePricelist(UpdatePricelistBindingModel bindingModel) { try { var pricelist = AppDbContext.Pricelists.Where(p => p.PricelistId == bindingModel.Id).FirstOrDefault(); if (pricelist != null) { for (int i = 0; i < pricelist.RowVersion.Count(); i++) { if (pricelist.RowVersion[i] != bindingModel.RowVersion[i]) { return(HttpStatusCode.Conflict); } } pricelist.ValidFrom = bindingModel.ValidFrom; pricelist.ValidUntil = bindingModel.ValidUntil; foreach (var item in bindingModel.PricelistItems) { var pricelistItem = AppDbContext.PricelistItems.Where(pi => pi.PricelistItemId == item.PricelistItemId).FirstOrDefault(); pricelistItem.Price = item.Price; } AppDbContext.SaveChanges(); return(HttpStatusCode.OK); } return(HttpStatusCode.NotFound); } catch (DbUpdateConcurrencyException ex) { Trace.WriteLine("DbUpdateConcurrencyException Message: {0}", ex.Message); return(HttpStatusCode.Conflict); } catch (Exception ex) { Trace.WriteLine("NormalException Message: {0}", ex.Message); return(HttpStatusCode.Conflict); } }