public OrderInfoOutput RetrieveOrderItemsByOrderId([FromBody] OrderInfoInput input) { OrderInfoOutput output = new OrderInfoOutput(); if (input == null) { output.Result = "INPUT_IS_NULL"; } else { Order order = _db.Orders.Where(e => e.Id.Equals(input.OrderId) && e.Deleted == false).FirstOrDefault(); if (order == null) { output.Result = "ORDER_NOT_EXIST"; } else { List <OrderInfoItem> newItems = new List <OrderInfoItem>(); foreach (OrderItem item in order.OrderItems.Where(e => e.Deleted == false).ToList()) { OrderInfoItem checkItem = newItems.Where(e => e.OrderItemId.Equals(item.Id)).FirstOrDefault(); if (checkItem != null) { checkItem.Quantity += item.Quantity; } else { OrderInfoItem newItem = new OrderInfoItem() { Name = item.MenuItem.Name, OrderItemId = item.Id, MenuItemId = item.MenuItem.Id, OrderItemUnitPrice = item.UnitPrice, Quantity = item.Quantity, Status = 2 }; newItems.Add(newItem); } } output.Items = newItems; output.Result = "OK"; } } return(output); }
public OrderInfoOutput GetActiveOrderById([FromBody] OrderInfoInput input) { OrderInfoOutput output = new OrderInfoOutput(); if (input == null) { output.Result = "INPUT_IS_NULL"; } else { Order order = _db.Orders.Where(e => e.Id.Equals(input.OrderId) && e.Deleted == false && e.Status == 1).FirstOrDefault(); if (order == null) { output.Result = "ORDER_NOT_EXIST"; } else { List <OrderInfoItem> orderInfoItems = new List <OrderInfoItem>(); foreach (OrderItem item in order.OrderItems.ToList()) { if (item.QuantityPaid > 0) { OrderInfoItem newItem = new OrderInfoItem() { Name = item.MenuItem.Name, OrderItemId = item.Id, OrderItemUnitPrice = item.MenuItem.Price, Quantity = item.QuantityPaid, Status = 2 }; orderInfoItems.Add(newItem); if (item.Quantity - item.QuantityPaid > 0) { OrderInfoItem newItem2 = new OrderInfoItem() { Name = item.MenuItem.Name, OrderItemId = item.Id, OrderItemUnitPrice = item.MenuItem.Price, Quantity = item.Quantity - item.QuantityPaid, Status = 1 }; orderInfoItems.Add(newItem2); } } else { OrderInfoItem newItem = new OrderInfoItem() { Name = item.MenuItem.Name, OrderItemId = item.Id, OrderItemUnitPrice = item.MenuItem.Price, Quantity = item.Quantity, Status = item.Status }; orderInfoItems.Add(newItem); } } output.Result = "OK"; output.Items = orderInfoItems.OrderBy(e => e.Status).ToList(); } } return(output); }