Ejemplo n.º 1
0
        /// <summary>
        /// Acts on the purchase menu selection from the user.
        /// </summary>
        /// <param name="purchaseMenuInput"></param>
        private void ManagePurchaseMenu()
        {
            int purchaseMenuInput;

            while (true)
            {
                string currentBalanceString = $"Current Money Provided: {VendoMatic500.Balance.ToString("C")}";

                purchaseMenuInput = Menu(PurchaseMenuOptions, currentBalanceString);
                Console.Clear();

                if (purchaseMenuInput == 1) // FEED MONEY
                {
                    FeedMoneyUntilCancel();
                }
                else if (purchaseMenuInput == 2) // SELECT PRODUCT
                {
                    string selectedItem = GetUserSelectedProduct();
                    ProcessPurchaseOfSelectedProduct(selectedItem);
                }
                else if (purchaseMenuInput == 3) // FINISH TRANSACTION
                {
                    Change change = VendoMatic500.ReturnChange();
                    WriteChangeMessage(change);

                    break;
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Allows the user to deposit money into the vending machine in whole dollar amounts.
        /// </summary>
        private void FeedMoneyUntilCancel()
        {
            int feedAmount;

            do
            {
                feedAmount = GetInputPositiveInteger("Enter the number of dollars to feed (ENTER when finished): $");

                if (feedAmount != 0)
                {
                    VendoMatic500.FeedMoney(feedAmount);
                    Console.WriteLine($"Deposit successful. Balance: {VendoMatic500.Balance.ToString("C")}");
                    Console.WriteLine();
                }
            } while (feedAmount != 0);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Displays vending machine inventory as a list. Items with no remaining
        /// stock are displayed as "SOLD OUT!"
        /// </summary>
        private void DisplayVendingItemsList()
        {
            Console.Clear();

            string[] slots = VendoMatic500.Slots;
            foreach (string slot in slots)
            {
                VendableItems item = VendoMatic500.GetItemAtSlot(slot);
                if (item.AmountRemaining > 0)
                {
                    Console.WriteLine($"{slot,-4} {item.Name,-19} ${item.Cost}");
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.DarkGray;
                    Console.WriteLine($"{slot,-4} {item.Name,-19} SOLD OUT!");
                    Console.ForegroundColor = ConsoleColor.White;
                }
            }
            Console.WriteLine();
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Purchases the selected product, if valid.
 /// </summary>
 /// <param name="selection">The user input product code / "slot".</param>
 private void ProcessPurchaseOfSelectedProduct(string selection)
 {
     try
     {
         VendableItems item = VendoMatic500.Purchase(selection);
         if (item != null)
         {
             ResponsiveYumText += item.ConsumeMessage + "\n";
             Console.WriteLine();
             Console.WriteLine($"Dispensing {item.Name}...");
             Console.WriteLine();
             PauseOperation();
         }
     }
     catch (VendingMachineException e)
     {
         Console.WriteLine(e.Message);
         Console.WriteLine();
         Console.WriteLine("Press ENTER to continue");
         Console.ReadLine();
     }
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Displays vending machine inventory as a list. Items with no remaining
        /// stock are displayed as "SOLD OUT!"
        /// </summary>
        private void DisplayVendingItemsGrid()
        {
            Console.Clear();

            string[] slots = VendoMatic500.Slots;
            Console.WriteLine("----------------------------------------------------------------------------------------");
            foreach (char c in "ABCD".ToCharArray())
            {
                for (int s = 1; s < 5; s++)
                {
                    string address = c.ToString() + s.ToString();

                    VendableItems item = VendoMatic500.GetItemAtSlot(address);

                    if (item.AmountRemaining > 0)
                    {
                        Console.Write($"|   {address,-17}|");
                    }
                    else
                    {
                        Console.Write("|");
                        Console.ForegroundColor = ConsoleColor.DarkGray;
                        Console.Write($"   {address,-17}");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.Write("|");
                    }
                }
                Console.WriteLine();

                for (int s = 1; s < 5; s++)
                {
                    string address = c.ToString() + s.ToString();

                    VendableItems item = VendoMatic500.GetItemAtSlot(address);

                    if (item.AmountRemaining > 0)
                    {
                        Console.Write($"| {item.Name,-19}|");
                    }
                    else
                    {
                        Console.Write("|");
                        Console.ForegroundColor = ConsoleColor.DarkGray;
                        Console.Write($" {item.Name,-19}");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.Write("|");
                    }
                }
                Console.WriteLine();

                for (int s = 1; s < 5; s++)
                {
                    string address = c.ToString() + s.ToString();

                    VendableItems item = VendoMatic500.GetItemAtSlot(address);
                    if (item.AmountRemaining > 0)
                    {
                        Console.Write($"|  {item.Cost.ToString("C"),-18}|");
                    }
                    else
                    {
                        Console.Write("|");
                        Console.ForegroundColor = ConsoleColor.DarkGray;
                        Console.Write($"    SOLD OUT!       ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.Write("|");
                    }
                }
                Console.WriteLine();
                Console.WriteLine("----------------------------------------------------------------------------------------");
            }

            Console.WriteLine();
        }