Пример #1
0
        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!");
        }
Пример #2
0
        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");
                }
            }
        }