Example #1
0
        /// <summary>
        /// Accepts user intput, makes it readable regardless of case, then decides the next course of action based on the user's choice.
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        protected override string GetString(string message)
        {
            while (true)
            {
                Console.Write(message + " ");
                string userInput = Console.ReadLine().Trim().ToUpper();
                if (!String.IsNullOrEmpty(userInput))
                {
                    foreach (Slots slot in Vendo_Matic_800.slotList)
                    {
                        string  itemID = slot.SlotID;
                        int     itemAmountAvailable = slot.Amount;
                        string  itemName            = Vendo_Matic_800.vendingStock[itemID].Name;
                        decimal itemPrice           = Vendo_Matic_800.vendingStock[itemID].Price;


                        if (userInput == itemID && Vendo_Matic_800.Balance >= itemPrice)
                        {
                            if (slot.Amount >= 1)
                            {
                                Console.Clear();
                                string dispenseString = $"Dispensing: {Vendo_Matic_800.vendingStock[slot.SlotID].Name} | {Vendo_Matic_800.vendingStock[slot.SlotID].Price:C} has been deducted from your balance.";
                                Console.WriteLine(new string('=', dispenseString.Length));
                                Vendo_Matic_800.Spend(itemPrice);
                                Vendo_Matic_800.Dispense(slot);
                                Console.WriteLine(dispenseString);
                                Console.WriteLine();
                                Console.WriteLine($"{Vendo_Matic_800.vendingStock[slot.SlotID].Message}");
                                Console.WriteLine();
                                Console.WriteLine($"Your new Balance is: {Vendo_Matic_800.Balance:C}");
                                Console.WriteLine(new string('=', dispenseString.Length));
                            }
                            if (itemAmountAvailable < 1)
                            {
                                Console.Clear();
                                string soldOutString = $"!!!!!!!!!!!!!!!!!!  SOLD OUT  !!!!!!!!!!!!!!!!!!";
                                Console.WriteLine(new string('=', soldOutString.Length));
                                Console.WriteLine(soldOutString);
                                Console.WriteLine(new string('=', soldOutString.Length));
                                Vendo_Matic_800.Deposit(itemPrice);
                                Pause("Please make another selection,");
                                break;
                            }
                            Pause("Thank you for your purchase,");
                            PurchaseMenu purchaseMenu = new PurchaseMenu(Vendo_Matic_800);
                            purchaseMenu.Run();
                        }
                        else if (userInput == itemID)
                        {
                            Console.Clear();
                            Vendo_Matic_800.Spend(itemPrice);
                            Pause("Tough Luck!,");
                            PurchaseMenu purchaseMenu = new PurchaseMenu(Vendo_Matic_800);
                            purchaseMenu.Run();
                        }
                    }
                    return(userInput);
                }
                else
                {
                    return("!!! Invalid input. Please enter a valid decimal number.");
                }
            }
        }