コード例 #1
0
 public void RemoveItemFromOrder(IOrdable ordable)
 {
     if (currentOrder != null)
     {
         currentOrder.Content.Remove(ordable);
     }
 }
コード例 #2
0
        public void TestCalculateTotalCost()
        {
            IOrdable[] orderContent = new IOrdable[]
            {
                new Pizza()
                {
                    Cost = 50
                },
                new Pizza()
                {
                    Cost = 80
                },
                new Drink()
                {
                    Cost = 15
                },
                new Topping()
                {
                    Cost = 10
                }
            };

            Order order = new Order()
            {
                Content = orderContent.ToList()
            };

            double costResult = orderManager.CalculateOrderTotalCost(order);

            Assert.AreEqual(155, costResult);
        }
コード例 #3
0
        private bool CanAddItemToOrder(IOrdable ordable)
        {
            bool canAddItem = true;

            if (ordable is Topping && !currentOrder.Content.Where(item => item is Pizza).Any())
            {
                canAddItem = false;
            }
            return(canAddItem);
        }
コード例 #4
0
 public void AddItemToOrder(IOrdable ordable)
 {
     if (currentOrder == null || currentOrder.Content == null)
     {
         CreateNewOrder();
     }
     if (CanAddItemToOrder(ordable))
     {
         currentOrder.Content.Add(ordable);
     }
 }
コード例 #5
0
        public static string OrdableToString(IOrdable ordable)
        {
            string ordableToString = "";

            if (ordable is Pizza)
            {
                ordableToString = PizzaToString(ordable as Pizza);
            }
            else if (ordable is Drink)
            {
                ordableToString = DrinkToString(ordable as Drink);
            }
            else
            {
                ordableToString = ToppingToString(ordable as Topping);
            }
            return(ordableToString);
        }
コード例 #6
0
        private void AddItemToOrder()
        {
            PrintMenu();
            PrintCurrentOrder();
            Console.WriteLine("Enter ID to add corresponding item");
            List <string> validInput = new List <string>();

            for (int i = 1; i <= menu.Ordables.Count; i++)
            {
                validInput.Add(i.ToString());
            }
            userInput = GetUserInput(validInput.ToArray());

            IOrdable chosenOrdable = menu.Ordables.
                                     Where(ordable => ordable.Id == int.Parse(userInput)).
                                     First();

            orderManager.AddItemToOrder(chosenOrdable);
            OrderMenu();
        }
コード例 #7
0
        private void RemoveItemFromOrder()
        {
            if (orderManager.CurrentOrder != null && orderManager.CurrentOrder.Content.Count > 0)
            {
                PrintCurrentOrder();
                Console.WriteLine("Enter ID to remove corresponding item");
                List <string> validInput = new List <string>();
                foreach (IOrdable ordable in orderManager.CurrentOrder.Content)
                {
                    validInput.Add(ordable.Id.ToString());
                }
                userInput = GetUserInput(validInput.ToArray());

                IOrdable chosenOrdable = menu.Ordables.
                                         Where(ordable => ordable.Id == int.Parse(userInput)).
                                         First();

                orderManager.RemoveItemFromOrder(chosenOrdable);
            }
            OrderMenu();
        }
コード例 #8
0
 public void RemoveOrdable(IOrdable ordable)
 {
     ordables.Remove(ordable);
 }
コード例 #9
0
 public void AddOrdable(IOrdable ordable)
 {
     ordables.Add(ordable);
 }