private bool ValidateQuantities(Order order) { foreach (var book in order.Books) { var originalBook = _bookRepo.Get(book.Id); if (originalBook.Quantity < book.SelectedQuantity) return false; } return true; }
public void Post(Order order) { if (!ModelState.IsValid) throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); if (!ValidateQuantities(order)) throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Order has illegal quantities!.")); foreach (var book in order.Books) { var originalBook = _bookRepo.Get(book.Id); originalBook.Quantity -= book.SelectedQuantity; _bookRepo.Update(originalBook); ShoppingCartHub.Value.Clients.All.updateProductCount(originalBook); } var added = _orderRepo.Add(order); AdminHub.Value.Clients.All.orderReceived(added); }