public Task<HttpResponseMessage> Post([FromBody]dynamic body) { var command = new CreateOrderCommand( orderItems: body.orderItems.ToObject<List<CreateOrderItemCommand>>() ); var order = _service.Create(command, User.Identity.Name); return CreateResponse(HttpStatusCode.Created, order); }
public Order Create(CreateOrderCommand command, string email) { var user = _userRepository.GetByEmail(email); var orderItems = new List<OrderItem>(); foreach (var item in command.OrderItems) { var orderItem = new OrderItem(); var product = _productRepository.Get(item.Product); orderItem.AddProduct(product, item.Quantity, item.Price); orderItems.Add(orderItem); } var order = new Order(orderItems, user.Id); order.Place(); _orderRepository.Create(order); if (Commit()) return order; return null; }