static void Main(string[] args) { Console.WriteLine("Welcome to the Vendo-Matic 800!"); decimal currentBalance = 0.00M; VendingMachine vendoMatic = new VendingMachine(); SalesReport salesReport = new SalesReport(); MainMenu main = new MainMenu(); PurchaseMenu purchase = new PurchaseMenu(); Money money = new Money(currentBalance); bool showMainMenu = true; while (showMainMenu) { main.DisplayMainMenu(); string userInputMain = Console.ReadLine(); switch (userInputMain) { case "1": vendoMatic.DisplayItems(); main.menuSpacer(); showMainMenu = true; break; case "2": purchase.PurchaseItemsMenu(money.CurrentBalance); showMainMenu = true; break; //case "4": // Console.WriteLine("Sales Report"); // main.menuSpacer(); // //PrintSalesReport(); // showMainMenu = true; // break; case "3": //salesReport.LogSalesReport(); showMainMenu = false; break; default: Console.WriteLine(main.InvalidOption()); showMainMenu = true; break; } } main.menuSpacer(); Console.WriteLine("Thank you! Please come again!"); }
public void MainMenu() { DisplayVendingMachine(); bool validInput = false; int usersMenuInput = 0; Console.WriteLine(); Console.WriteLine("Welcome to Vendo-Matic 800 by Umbrella Corp.\n\n"); while (!validInput) { Console.Write("***** Main Menu *****"); Console.WriteLine(); Console.WriteLine(" (1) Display Vending Machine Items \n (2) Feed Money/Make Purchase \n (3) Exit "); try { usersMenuInput = int.Parse(Console.ReadLine()); } catch { Console.WriteLine("*** INTEGERS ONLY PLEASE ***"); } validInput = (usersMenuInput == 1 || usersMenuInput == 2 || usersMenuInput == 3 || usersMenuInput == 4); if (!validInput) { Console.WriteLine("*** Please select a valid option ***\n"); } } if (usersMenuInput == 1) { Console.Clear(); DisplayVendingWindow(); Console.WriteLine(); Console.WriteLine("Press ENTER key to continue"); Console.ReadLine(); Console.Clear(); MainMenu(); } else if (usersMenuInput == 2) { Console.Clear(); PurchaseMenu(); } else if (usersMenuInput == 3) { Console.Beep(392, 250); Console.Beep(330, 200); Console.Beep(262, 150); Environment.Exit(0); } else if (usersMenuInput == 4) { SalesReport salesReport = new SalesReport(ItemBySlotLocation); Console.WriteLine("Sales Report Created."); Console.ReadLine(); MainMenu(); // RECURSIVE } }
static void Main(string[] args) { string currentDirectory = Directory.GetCurrentDirectory(); string inputFileName = "vendingmachine.csv"; string readFilePath = Path.Combine(currentDirectory, inputFileName); VendingMachine vendoMatic600 = new VendingMachine(readFilePath); bool exitMainMenu = false; Menu mainMenu = new Menu(); string[] mainMenuOptions = { "Display Items", "Purchase", "EXIT", "Sales Report" }; Menu purchaseMenu = new Menu(); string[] purchaseMenuOptions = { "Feed Money", "Select Product", "Finish Transaction" }; //while loop returns user to the main menu while (!exitMainMenu) { mainMenu.DisplayMenu(mainMenuOptions, 1); string inputKey = Console.ReadLine(); if (inputKey == "1") { Console.Clear(); Console.WriteLine(vendoMatic600.DisplayProducts()); } else if (inputKey == "2") { //purchaseMenu is displayed, loop for same reason bool exitPurchaseMenu = false; while (!exitPurchaseMenu) { Console.WriteLine(); purchaseMenu.DisplayMenu(purchaseMenuOptions); string purchaseInputKey = Console.ReadLine(); Console.WriteLine($"\nCurrent Money: {vendoMatic600.StoredMoney.ToString("C2")}"); if (purchaseInputKey == "1") { Console.Clear(); Console.WriteLine($"\nInsert a bill: $(1), $(2), $(5), or $(10)"); string moneyInserted = Console.ReadLine(); Console.WriteLine(vendoMatic600.FeedMoney(moneyInserted)); } else if (purchaseInputKey == "2") { Console.Clear(); Console.WriteLine(vendoMatic600.DisplayProducts()); Console.WriteLine($"Current Money: {vendoMatic600.StoredMoney.ToString("C2")}"); Console.WriteLine("\nSelect the product you would like to purchase by entering its slot. Ex: A4, C3, B1, D2, etc"); string userSelectedSlot = Console.ReadLine().ToUpper(); Console.Clear(); Console.WriteLine(vendoMatic600.SelectItemAndPurchase(userSelectedSlot)); } else if (purchaseInputKey == "3") { int[] finalChangeInCoins = vendoMatic600.GiveChange(); Console.WriteLine($"\nYour change is: {finalChangeInCoins[0]} quarter(s), {finalChangeInCoins[1]} dime(s), {finalChangeInCoins[2]} nickel(s)"); exitPurchaseMenu = true; } else { Console.WriteLine("\nUnknown input. Try again."); } } } else if (inputKey == "3") { if (vendoMatic600.StoredMoney != 0) { vendoMatic600.GiveChange(); } Console.WriteLine(); exitMainMenu = true; } else if (inputKey == "4") { SalesReport salesReport = new SalesReport(); string partialFileName = "SalesReport"; DirectoryInfo salesReportDirectory = new DirectoryInfo(currentDirectory); FileInfo[] salesReportFiles = salesReportDirectory.GetFiles(partialFileName + "*.txt"); if (salesReportFiles.Length == 0) { salesReport.CreateFirstReport(vendoMatic600); } else { salesReport.CreateUpdatedSalesReport(vendoMatic600); } Console.WriteLine("\nSales Report Generated\n"); } else { Console.WriteLine("\nUnknown input. Try again.\n"); } } }