Пример #1
0
        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);
        }
Пример #2
0
 public IActionResult Post([FromBody] InsertOrderViewModel value)
 {
     _orderService.Insert(value);
     if (_orderService.Valid)
     {
         return(Ok());
     }
     return(BadRequest(_orderService.Notifications));
 }
Пример #3
0
        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();
            }
        }
Пример #4
0
        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)));
        }