public void DisplayPurchaseMenu() { bool isStillSelecting = true; while (isStillSelecting) { string userInput = ""; bool correctInput = userInput == "1" || userInput == "2"; while (!correctInput) { Console.Clear(); Console.WriteLine("Vendo-Matic 500"); Console.WriteLine(); Console.WriteLine("(1) Feed Money"); Console.WriteLine("(2) Select Product"); Console.WriteLine("(3) Finish Transaction"); Console.WriteLine($"\nTotal Wallet: {transaction.TotalMoneyInserted:c}"); Console.Write("\nChoose An Option: "); userInput = Console.ReadLine(); correctInput = userInput == "1" || userInput == "2" || userInput == "3"; } switch (userInput) { case "1": //Add Money Console.Clear(); Console.Write("Insert money ($1, $2, $5, $10): "); userInput = Console.ReadLine(); transaction.AcceptCash(userInput); Console.WriteLine(); for (int i = 0; i < 7; i++) { Console.Write("==="); Thread.Sleep(200); } Console.WriteLine(); Console.WriteLine("Cash Accepted!"); Thread.Sleep(2000); break; case "2": Console.Clear(); Console.WriteLine("Vendo-Matic 500"); Console.WriteLine(); DisplayProducts(); Console.WriteLine($"\nTotal Wallet: {transaction.TotalMoneyInserted:c}"); Console.Write("\nChoose an option: "); userInput = Console.ReadLine(); transaction.SelectItem(userInput.ToLower(), stockService.Products); Console.WriteLine("\nPress any key to continue"); Console.ReadKey(); break; case "3": Console.Clear(); Console.WriteLine("Vendo-Matic 500"); Console.WriteLine(); transaction.ReturnChange(); SalesReport.UpdateSalesReport(stockService.Products); //SalesReport.UpdateSalesReport(transaction.AllItemsPurchased); isStillSelecting = false; break; default: break; } } }
public void RunVendingMachine() { balance = cashBox.GetBalance(); while (!finished) { Menu.PrintUserOptions(); input = VendingMachineCLI.GetString(); Console.WriteLine(); if (input == "1") { Menu.DisplayMenu(balance, inventory); Console.WriteLine("---------------------------------"); } if (input == "2") { Console.WriteLine("-----------------------------------------------------"); cashBox.DisplayOptions(); Console.WriteLine("Current Money Provided: " + balance.ToString("C2")); VendingMachineCLI.InputIsTwoMainMenu(); input = VendingMachineCLI.GetString(); if (input == "1") { Console.WriteLine("Please enter a full dollar amount"); cashBox.AddCustomerBalance(Console.ReadLine()); oldBalance = balance; balance = cashBox.GetBalance(); logString = "FEED MONEY: "; Log.WriteLog(logString, oldBalance, balance); } if (input == "2") { Console.WriteLine("Enter a product code"); string code = Console.ReadLine().ToUpper(); //if try { decimal price = inventory.GetPrice(code); string priceStr = price.ToString("C2"); string product = inventory.GetProductName(code); string phrase = inventory.GetPhrase(code); if (balance < price) { cashBox.OutOfFunds(); } else if (count < 1) { cashBox.SoldOut(); } else { logString = product + " " + code + " "; count = inventory.GetCount(code); oldBalance = balance; balance -= price; sale = inventory.NewSale(code); cashBox.AddMachineBalance(sale); Log.WriteLog(logString, oldBalance, balance); Console.WriteLine("---------------------------"); Console.WriteLine(phrase); Console.WriteLine("Remaining Balance: " + balance); Console.WriteLine("------"); Console.WriteLine("Press enter to continue"); input = Console.ReadLine(); } } catch (Exception) { inventory.CodeNotInInventory(); } } if (input == "3") { decimal change = balance; Console.WriteLine(Change.GetChangeString(change)); oldBalance = balance; balance = 0M; logString = "GIVE CHANGE: "; Log.WriteLog(logString, oldBalance, balance); } if (input == "4") { Console.WriteLine(); Log.WriteSalesReport(SalesReport.GetSales(inventory), cashBox.MachineBalance); } } if (input == "3") { Console.WriteLine("---------------------------------------------"); Console.WriteLine("Are you sure you want to exit? (Y)es or (N)o?"); Console.WriteLine("---------------------------------------------"); bool isSure = false; while (!isSure) { string yOrNInput = Console.ReadLine().ToUpper(); if (yOrNInput == "Y") { finished = true; Console.WriteLine(); Console.WriteLine("Goodbye!"); Console.ReadLine(); isSure = true; } else if (yOrNInput == "N") { isSure = true; } else { Console.WriteLine("Please Enter Y or N"); } } Console.WriteLine("--------------------------------------"); } else if (input != "1" && input != "2" && input != "3") { Console.WriteLine("Please enter a valid number from the menu to continue"); Console.WriteLine("-----------------------------------------------------"); } } }