public OrderDataTransferObject CreateOrder(OrderDataTransferObject order) { Guid id = Guid.NewGuid(); DateTimeOffset currentTime = DateTimeOffset.Now; Order newOrder = new Order { Id = id, Customer = _database.Customers.GetItem(order.CustomerId), OrderDate = currentTime, OrderNumber = order.OrderNumber, Status = OrderStatusType.New, OrderItems = order.OrderItems.Select(orderItem => new OrderItem { Id = Guid.NewGuid(), Item = _database.Items.GetItem(orderItem.ItemID), ItemsCount = orderItem.ItemsCount, ItemPrice = orderItem.ItemPrice }).ToList() }; _database.Orders.Create(newOrder); _database.Save(); return(new OrderDataTransferObject { Id = newOrder.Id, Customer = new CustomerDataTransferObject { Id = newOrder.Customer.Id, Name = newOrder.Customer.Name, Code = newOrder.Customer.Code, Adress = newOrder.Customer.Adress, Discount = newOrder.Customer.Discount }, OrderDate = newOrder.OrderDate, ShipmentDate = (DateTimeOffset)(newOrder.ShipmentDate == null ? default(DateTimeOffset) : newOrder.ShipmentDate), Status = (OrderStatusType)(newOrder.Status == null ? OrderStatusType.New : newOrder.Status), OrderNumber = (int)newOrder.OrderNumber, OrderItems = newOrder.OrderItems.Select(oi => new OrderItemDataTransferObject { Id = oi.Id, Item = new ItemDataTransferObject { Id = oi.Item.Id, Name = oi.Item.Name, Code = oi.Item.Code, Price = (double)oi.Item.Price, Category = oi.Item.Category }, ItemsCount = oi.ItemsCount, ItemPrice = oi.ItemPrice }).ToList() }); }
public void AcceptOrder(OrderDataTransferObject orderDataTransferObject) { Order order = _database.Orders.GetOrdersByPredicate(o => o.Id == orderDataTransferObject.Id).FirstOrDefault(); if (order.Status == OrderStatusType.New) { order.Status = OrderStatusType.IsExecuted; order.ShipmentDate = orderDataTransferObject.ShipmentDate; _database.Orders.Update(order); _database.Save(); } }
public IActionResult CreateOrder([FromBody] OrderCreateModel order) { if (order == null || !ModelState.IsValid) { return(BadRequest(ModelState)); } var newOrder = new OrderDataTransferObject { CustomerId = order.CustomerId, OrderNumber = order.OrderNumber, OrderItems = order.OrderItems.Select(oi => new OrderItemDataTransferObject { ItemID = oi.Item.Id, ItemPrice = oi.ItemPrice, ItemsCount = oi.ItemsCount }).ToList() }; var newOrderDataTransferObject = _orderService.CreateOrder(newOrder); return(CreatedAtRoute("GetOrder", new { id = newOrderDataTransferObject.Id }, new OrderGetModel { Id = newOrderDataTransferObject.Id, Customer = new CustomerGetModel { Id = newOrderDataTransferObject.Customer.Id, Name = newOrderDataTransferObject.Customer.Name, Code = newOrderDataTransferObject.Customer.Code, Adress = newOrderDataTransferObject.Customer.Adress, Discount = newOrderDataTransferObject.Customer.Discount }, OrderDate = newOrderDataTransferObject.OrderDate, ShipmentDate = newOrderDataTransferObject.ShipmentDate, OrderNumber = newOrderDataTransferObject.OrderNumber, Status = newOrderDataTransferObject.Status, OrderItems = newOrderDataTransferObject.OrderItems.Select(oi => new OrderItemModel { Id = oi.Id, Item = new ItemGetModel { Id = oi.Item.Id, Name = oi.Item.Name, Code = oi.Item.Code, Price = oi.Item.Price, Category = oi.Item.Category }, ItemPrice = oi.ItemPrice, ItemsCount = oi.ItemsCount }).ToList() })); }