//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; } }
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); }