Esempio n. 1
0
        public override void Handle(Context context)
        {
            Console.WriteLine("Select a size for your pizza");
            var index = 0;

            var pizza = context.Order.Pizzas[context.Order.Pizzas.Count - 1];

            if (pizza is null)
            {
                throw new Exception("Forgot to add pizza before selecting size");
            }

            List <Domain.Abstracts.APizza> pizzaList = new List <Domain.Abstracts.APizza>();

            foreach (Domain.Models.Size size in _sizeSingleton.Sizes)
            {
                Domain.Abstracts.APizza cloned = pizza.Clone();
                cloned.Size = size;
                pizzaList.Add(cloned);
            }

            _sizeSingleton.Sizes.ForEach(size => Console.WriteLine($"{++index} - {size} - {pizzaList[index - 1].Price}"));
            var input = 0;

            do
            {
                try
                {
                    input = int.Parse(Console.ReadLine());
                }
                catch (Exception)
                {
                }
            } while (input <= 0 || input > _sizeSingleton.Sizes.Count);
            pizza.Size = _sizeSingleton.Sizes[input - 1];

            context.State = PizzaBox.Client.Singletons.StateSingleton.Instance.GetState <CheckOrderTotalState>();
        }
Esempio n. 2
0
        public override void Handle(Context context)
        {
            var index = 0;

            _pizzaSingleton.Pizzas.ForEach(pizza => Console.WriteLine($"{++index} - {pizza.Name}"));
            var input = 0;

            do
            {
                try
                {
                    input = int.Parse(Console.ReadLine());
                }
                catch (Exception)
                {
                }
            } while (input <= 0 || input > _pizzaSingleton.Pizzas.Count);

            Domain.Abstracts.APizza pizza = _pizzaSingleton.Pizzas[input - 1].Clone();
            context.Order.Pizzas.Add(pizza);

            context.State = pizza is Domain.Models.CustomPizza ? StateSingleton.Instance.GetState <CreateCustomPizzaState>()
                                                               : StateSingleton.Instance.GetState <SelectPizzaSizeState>();
        }