Exemplo n.º 1
0
        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;
                }
            }
        }
Exemplo n.º 2
0
        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("-----------------------------------------------------");
                }
            }
        }