コード例 #1
0
        //When a new OrderItem is added, subtotal, tax, and total are
        //automatically updated.
        public void AddItemToOrder(OrderItem newOrderItem)
        {
            bool addItemToOrder = true;

            if (newOrderItem != null)
            {
                if (newOrderItem is Drink)
                {
                    Drink drinkToAdd = (Drink)newOrderItem;
                    if (UpdateDrinkIfAlreadyOnOrder(drinkToAdd))
                    {
                        addItemToOrder = false;
                    }
                }
                else if (newOrderItem is Dessert)
                {
                    Dessert dessertToAdd = (Dessert)newOrderItem;
                    if (UpdateDessertIfAlreadyOnOrder(dessertToAdd))
                    {
                        addItemToOrder = false;
                    }
                }
                else if (newOrderItem is Pizza)
                {
                    Pizza pizzaToAdd = (Pizza)newOrderItem;
                    if (UpdatePizzaIfAlreadyOnOrder(pizzaToAdd))
                    {
                        addItemToOrder = false;
                    }
                }
                else if (newOrderItem is Calzone)
                {
                    Calzone calzoneToAdd = (Calzone)newOrderItem;
                    if (UpdateCalzoneIfAlreadyOnOrder(calzoneToAdd))
                    {
                        addItemToOrder = false;
                    }
                }
                else if (newOrderItem is Salad)
                {
                    Salad saladToAdd = (Salad)newOrderItem;
                    if (UpdateSaladIfAlreadyOnOrder(saladToAdd))
                    {
                        addItemToOrder = false;
                    }
                }

                if (addItemToOrder)
                {
                    newOrderItem.OrderItemNumber = OrderItems.Count + 1;
                    OrderItems.Add(newOrderItem);
                }

                UpdateOrderTotals();
                MenuHeaderModel.Instance.OrderTotal = Total;
            }
        }
コード例 #2
0
        public bool UpdateDessertIfAlreadyOnOrder(Dessert dessertToAdd)
        {
            foreach (var orderItem in OrderItems)
            {
                if (orderItem is Dessert)
                {
                    Dessert dessertAlreadyOnOrder = (Dessert)orderItem;
                    if (dessertToAdd.DessertType == dessertAlreadyOnOrder.DessertType)
                    {
                        if (EditingExistingOrder)
                        {
                            orderItem.ItemCount = dessertToAdd.ItemCount;
                        }
                        else
                        {
                            orderItem.ItemCount++;
                        }
                        return(true);
                    }
                }
            }

            return(false);
        }