private Order MapToEntity(InsertOrderViewModel o) { if (o.Items == null || !o.Items.Any()) { throw new ArgumentException("Items is required for new orders"); } var order = new Order { CreatedDate = DateTime.Now, Description = o.Description, Items = new List <OrderItem>(), Customer = GetCustomer(o.CustomerId) }; foreach (var item in o.Items) { order.Items.Add(new OrderItem { Amount = item.Amount, Price = item.Price, Product = GetProduct(item.ProductId) }); } return(order); }
public IActionResult Post([FromBody] InsertOrderViewModel value) { _orderService.Insert(value); if (_orderService.Valid) { return(Ok()); } return(BadRequest(_orderService.Notifications)); }
public void Insert(InsertOrderViewModel model) { var order = model.Adapt <Order>(); validateInsert(order); if (Valid) { var orderCmd = new SaveOrderCommand(_orderRepository, _orderValidator); orderCmd.Execute(order); AddNotifications(orderCmd); addItems(order); } if (Valid) { _context.SaveChanges(); } }
public IActionResult AddOrder([FromBody] InsertOrderViewModel orderVM) { var customer = GetCustomer(orderVM.CustomerId); if (ModelState.IsValid) { try { var order = MapToEntity(orderVM); _orderService.Insert(order); _orderService.SaveChanges(); return(CreatedAtAction(nameof(Get), new { customerId = orderVM.CustomerId }, order)); } catch (ArgumentException ex) { return(BadRequest(ex.Message)); } } return(BadRequest(ModelState.Values.SelectMany(e => e.Errors))); }