예제 #1
0
        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;
        }
예제 #2
0
        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);
        }