/// <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); } }