Пример #1
0
        private int FulfillOrder(EBurgerType burgerType, User client, EExtraIngredients extraIngredients = EExtraIngredients.BASIC)
        {
            string name  = "";
            float  price = 0;

            if (burgerType == EBurgerType.Classic)
            {
                name  = Constants.ClassicBurgerName;
                price = Constants.ClassicBurgerPrice;
            }

            if (burgerType == EBurgerType.Deluxe)
            {
                name  = Constants.DeluxeBurgerName;
                price = Constants.DeluxeBurgerPrice;
            }

            Kitchen kitchen;


            switch (burgerType)
            {
            case EBurgerType.Classic:
            {
                kitchen = new ClassicBurgerFactory();
                var burger          = kitchen.GetBurger(name, price);
                var decoratedBurger = AddExtraIngredients(burger, extraIngredients);

                _orderedBurgers.Add(Kitchen.LastId, decoratedBurger);
                Console.WriteLine($"Classic burger was ordered : {decoratedBurger.ToString()} => ID {Kitchen.LastId}");
                Console.WriteLine("It will be serverd in a short time...");
                ServeBurger(client, Kitchen.LastId);

                return(Kitchen.LastId);
            }

            case EBurgerType.Deluxe:
            {
                kitchen = new DeluxeBurgerFactory();
                var burger          = kitchen.GetBurger(name, price);
                var decoratedBurger = AddExtraIngredients(burger, extraIngredients);

                _orderedBurgers.Add(Kitchen.LastId, decoratedBurger);

                Console.WriteLine($"Deluxe burger was ordered : {decoratedBurger.ToString()} => ID {Kitchen.LastId}");
                ApplicationMode.Instance.sendAction($"Deluxe burger was ordered : {decoratedBurger.ToString()} => ID {Kitchen.LastId}");
                Console.WriteLine("It will be serverd in a short time...");
                ServeBurger(client, Kitchen.LastId);

                return(Kitchen.LastId);
            }

            default:
                return(-1);
            }
        }
Пример #2
0
 public ClassicBurger(int id, string name, float price) : base(id, name, price)
 {
     Type = EBurgerType.Classic;
 }
Пример #3
0
 public DeluxeBurger(int id, string name, float price) : base(id, name, price)
 {
     Type = EBurgerType.Deluxe;
 }
Пример #4
0
        private void PlaceOrder(User client)
        {
            int         intTemp     = 0;
            EBurgerType eBurgerType = EBurgerType.Classic;

            do
            {
                Console.WriteLine("What would you like to eat?: \n" +
                                  "1 -> ClassicBurger\n" +
                                  "2 -> Deluxe Burger\n");
                intTemp = Convert.ToInt32(Console.ReadLine());
                switch (intTemp)
                {
                case 1:
                    eBurgerType = EBurgerType.Classic;
                    break;

                case 2:
                    eBurgerType = EBurgerType.Deluxe;
                    break;

                default:
                    Console.WriteLine("We don't have that type of burger. Maybe try something from the menu?");
                    break;
                }
            } while (intTemp != 1 && intTemp != 2);

            Console.WriteLine("Excellent choice! Do you want to add something extra to the burger? \n" +
                              "1 -> Yes\n" +
                              "2 -> No\n");
            intTemp = Convert.ToInt32(Console.ReadLine());


            switch (intTemp)
            {
            case 1:
                Console.WriteLine("What kind of extra would you like? \n" +
                                  "1 -> Drink\n" +
                                  "2 -> Sauce\n" +
                                  "3 -> Vegetable");

                int extraOption = 0;
                do
                {
                    try
                    {
                        extraOption = Convert.ToInt32(Console.ReadLine());
                        switch (extraOption)
                        {
                        case 1:
                            FulfillOrder(eBurgerType, client, EExtraIngredients.DRINK);
                            break;

                        case 2:
                            FulfillOrder(eBurgerType, client, EExtraIngredients.SAUCE);
                            break;

                        case 3:
                            FulfillOrder(eBurgerType, client, EExtraIngredients.VEGETABLE);
                            break;

                        default:
                            Console.WriteLine("Sorry, we're not adding weird stuff to our burgers since the coronavirus outbreak");
                            break;
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                } while (intTemp != 1 && intTemp != 2 && intTemp != 3);

                break;

            case 2:
                FulfillOrder(eBurgerType, client);
                break;

            default:
                Console.WriteLine("I'll take that as a no.");
                FulfillOrder(eBurgerType, client);
                break;
            }
        }