private static void DisplayWalletBalance(IVendingMachine machine)
 {
     Console.WriteLine($"Current Wallet Balance = {machine.GetWalletBalance()}");
 }
        private static void BuyItemByIndex(IVendingMachine machine, int index)
        {
            int    numberOfItemsThatCanBePurchased = machine.HowManyItemsCanBeBought(index);
            string nameOfItem = machine.GetCurrentCatalogue()[index].GetItemType().Name;

            if (numberOfItemsThatCanBePurchased == 0)
            {
                Console.WriteLine($"You don't have balance to purchase any {nameOfItem}! Please top up balance from Main Menu");
                GoBackToMainMenu(machine);
            }
            else
            {
                Console.WriteLine($"You can at most buy {numberOfItemsThatCanBePurchased} with your balance of ${machine.GetWalletBalance()}.");
                Console.WriteLine("How many do you want to buy?");
                string input = Console.ReadLine();

                if (IsResponseInteger(input))
                {
                    int responseInt = GetResponseInteger(input);
                    if (responseInt > 0 && responseInt <= numberOfItemsThatCanBePurchased)
                    {
                        List <IItem> items = machine.PurchaseItem(index, responseInt);
                        Console.WriteLine($"Congratulations! You purchased {responseInt} {nameOfItem}");
                        DisplayCurrentCatalogue(machine);
                        GoBackToMainMenu(machine);
                    }
                    else
                    {
                        Console.WriteLine("Wrong Input");
                        GoBackToMainMenu(machine);
                    }
                }
                else
                {
                    Console.WriteLine("Wrong Input");
                    GoBackToMainMenu(machine);
                }
            }
        }