Beispiel #1
0
        /// <summary>
        /// Thid method manage the process to verify selection after inserted valid money
        /// </summary>
        private void GetSelection()
        {
            // Ask the user to make selection and show how much they've entered in the machine.
            DisplayMachine($"You have inserted ${input}. Please make your selection");
            picked = ReadLine()?.ToLower();

            // Verify if user's input is valid.
            if (picked != null && items.Exists(item => item.Location.ToLower() == picked))
            {
                itemPicked = items.Find(item => item.Location.ToLower() == picked);

                // Verify if user inserted enough money for the purchase.
                if (itemPicked.Price < input)
                {
                    // Verify if item is available for purchase.
                    if (itemPicked.ReduceInventory())
                    {
                        // Purchase success.
                        DisplayMachine($"Vending {itemPicked}",
                                       $"Your change is {MakeChange(itemPicked, input)} (Press any key to continue)");
                        ReadKey();
                    }
                    else
                    {
                        // Failed: Show error if item is out of stock.
                        ShowError($"Your selected item: {itemPicked} is not available.", true);
                    }
                }
                else
                {
                    // Failed: Show error if the money inserted is not enough for the item.
                    ShowError($"Your selected item: {itemPicked} is more than the money you inserted.", true);
                }
            }
            else
            {
                // Failed: Show error if item doesn't exist.
                ShowError("Invalid entry . . .", true);
            }
        }