Esempio n. 1
0
        static void Main(string[] args)
        {
            Console.SetCursorPosition(Console.WindowWidth / 3, 0);
            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.WriteLine("----Welcome To The Coffee House----");
            Console.ForegroundColor = ConsoleColor.Green;
            CoffeeMachine machine = new CoffeeMachine();

            machine.PrintProducts();
            Console.WriteLine();
            do
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine();
link1:
                Console.Write("Insert Your Coin => ");
                bool successMoney = false;
                while (!successMoney)
                {
                    try
                    {
                        Console.ForegroundColor = ConsoleColor.Green;
                        machine.Money           = int.Parse(Console.ReadLine());
                        successMoney            = true;
                    }
                    catch (Exception e)
                    {
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.Write("Insert Correct Coin! " + " => ");
                    }
                }
link2:
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("Enter Number Of Coffee From 1 To 10 => ");
                bool successCoffeeNum = false;
                while (!successCoffeeNum)
                {
                    try
                    {
                        Console.ForegroundColor = ConsoleColor.Green;
                        machine.CoffeeNum       = int.Parse(Console.ReadLine());
                        successCoffeeNum        = true;
                    }
                    catch (Exception e)
                    {
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.Write("Enter Correct Number Of Coffee " + " => ");
                    }
                }
                Coffee usersCoffee = new Coffee();
                try
                {
                    usersCoffee = machine.MakeCoffee();
                }
                catch (IngridientException e)
                {
                    Console.ForegroundColor = ConsoleColor.DarkRed;
                    Console.WriteLine(e.Message);
                    Console.WriteLine("Please Select Another Coffee");
                    goto link2;
                }
                catch (MoneyException eMoney)
                {
                    Console.ForegroundColor = ConsoleColor.DarkRed;
                    Console.WriteLine(eMoney.Message);
                    machine.Money = 0;
                    Console.WriteLine("Take Your Money Back And Try Again");
                    goto link1;
                }
                Console.ForegroundColor = ConsoleColor.DarkYellow;
                Console.WriteLine("Your " + usersCoffee.Name + " Is Ready!");
link3:
                Console.Write("Enter '0' To Finish...");
                ConsoleKeyInfo info = Console.ReadKey();
                if (info.Key == ConsoleKey.D0 || info.Key == ConsoleKey.NumPad0)
                {
                    Console.WriteLine();
                    Console.ForegroundColor = ConsoleColor.DarkRed;
                    int cashBack = machine.Money - usersCoffee.Price;
                    if (cashBack == 0)
                    {
                        Console.WriteLine("You Don't Have Change...");
                    }
                    else
                    {
                        Console.WriteLine("Your Change Is " + cashBack);
                    }
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.Write("If You Want Another Coffee Press Enter");
                }
                else
                {
                    Console.WriteLine();
                    goto link3;
                }
                machine.SaveChangesInFile();
                Console.WriteLine();
                Console.WriteLine();
                machine.Money = 0;
            }while (Console.ReadKey().Key == ConsoleKey.Enter);
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            // DataImitation.GenerateData(10);


            ResourceController      resourceController = new ResourceController();
            CoffeeMachineController controller         = new CoffeeMachineController();

            var coffees = controller.GetCoffees();

            foreach (var coffee in coffees)
            {
                Console.WriteLine(coffee.Name + " - " + coffee.Price);
            }

            Console.WriteLine();
            Console.WriteLine("Select Coffee");

            Coffee selected = null;
            int    result   = -1;

            while (result == -1)
            {
                try
                {
                    result   = Convert.ToInt32(Console.ReadLine());
                    selected = controller.SelectCoffee(result);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
            if (!resourceController.IsEnoughResources(selected))
            {
                Console.WriteLine("Not Enough Resorces");
            }
            else
            {
                resourceController.CalculateResource(selected);

                Console.WriteLine();
                Console.WriteLine(selected.Name);
                Console.WriteLine(selected.Price);
                Console.WriteLine();
                Console.WriteLine("Enter Coin");

                int  coin    = 0;
                int  total   = 0;
                bool isValid = false;
                while (total < selected.Price)
                {
                    try
                    {
                        coin    = Convert.ToInt32(Console.ReadLine());
                        isValid = controller.IsValidCoin(coin);
                        if (!isValid)
                        {
                            throw new Exception("Enter only 50,100,200,500");
                        }
                        total += coin;
                        if (coin < selected.Price)
                        {
                            throw new Exception($"Not Enough, please Add {selected.Price - total}");
                        }
                        else
                        {
                            if (coin > selected.Price)
                            {
                                Console.WriteLine("Enjoy Your Coffee");
                                Console.WriteLine($"Please Take Your Change {total - selected.Price}");
                            }
                            else
                            {
                                Console.WriteLine("Enjoy Your Coffee");
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }
            Console.WriteLine();
            Console.ReadLine();
        }