private static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; DisplayVendingMachineTitle(); VendingMachine vendingMachine = new VendingMachine(); List <IProduct> purchasedProducts = new List <IProduct>(); bool exitMachine = false; showMenu = true; do { if (showMenu) { DisplayVendingOptions(); showMenu = false; } key = Console.ReadKey(true).Key; switch (key) { case ConsoleKey.S: { Console.Clear(); DisplayVendingMachineTitle(); vendingMachine.ShowAviableProducts(); showMenu = true; break; } case ConsoleKey.B: { Console.Clear(); DisplayVendingMachineTitle(); vendingMachine.ShowAviableProducts(); Console.WriteLine($"\nDeposited money: {vendingMachine.CurrentDepositedMoney:C0}\n"); Console.WriteLine("Please select what to buy: "); vendingMachine.BuyItems(purchasedProducts); showMenu = true; break; } case ConsoleKey.D: { vendingMachine.DepositMoney(); Console.Clear(); DisplayVendingMachineTitle(); showMenu = true; break; } case ConsoleKey.E: { vendingMachine.ExamineItems(); showMenu = true; break; } case ConsoleKey.X: { exitMachine = true; break; } } } while (!exitMachine); Console.WriteLine("Exited machine"); vendingMachine.GetChange(); Console.Read(); }