Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }