public ActionResult FeedMoney(double amount)
        {
            StatusViewModel result = null;

            try
            {
                _vm.FeedMoney(amount);
                result = new StatusViewModel(eStatus.Success);
            }
            catch (Exception ex)
            {
                result = new StatusViewModel(eStatus.Error, ex.Message);
            }

            var jsonResult = Json(result);

            return(GetAuthenticatedJson(jsonResult, _vm.Role.IsCustomer || _vm.Role.IsServiceman || _vm.Role.IsExecutive));
        }
        private void DisplayPurchaseMenu()
        {
            while (true)
            {
                PrintTitle();

                Console.WriteLine(" (1) Insert money");
                Console.WriteLine(" (2) Make a selection");
                Console.WriteLine(" (3) Finish Transaction");
                Console.WriteLine(" (R) Return to Main Menu");
                Console.WriteLine();
                Console.WriteLine($" Current balance: {_vm.RunningTotal.ToString("C")}");
                Console.Write(" Please make a choice: ");;

                string choice = Console.ReadLine().ToLower();

                Console.WriteLine();

                if (choice == Option_InsertMoney)
                {
                    Console.Write(" How much money do you want to enter? ($1, $2, $5, $10): ");
                    int moneyIn = int.Parse(Console.ReadLine());

                    _vm.FeedMoney(moneyIn);
                }
                else if (choice == Option_MakeSelection)
                {
                    PrintTitle();

                    Console.WriteLine($" Current balance: {_vm.RunningTotal.ToString("C")}");
                    DisplayInventory();

                    Console.WriteLine();

                    Console.Write(" Please select a slot id: ");
                    string slot = Console.ReadLine().ToUpper();

                    Console.WriteLine();

                    try
                    {
                        int col           = int.Parse(slot[0].ToString());
                        int row           = int.Parse(slot[1].ToString());
                        var purchasedItem = _vm.PurchaseItem(row, col);
                        Console.WriteLine(" Here are your " + purchasedItem.Product.Name);
                        Console.WriteLine(" " + purchasedItem.Category.Noise);
                    }
                    catch (InvalidProductSelection)
                    {
                        Console.WriteLine("Invalid slot id");
                    }
                    catch (InsufficientFundsException)
                    {
                        Console.WriteLine("Insufficient funds");
                    }
                    catch (SoldOutException)
                    {
                        Console.WriteLine("Product is sold out");
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    finally
                    {
                        Console.WriteLine();
                        Console.WriteLine(" Thank you for using Vendo-Matic!");
                        Console.ReadKey();
                    }
                }
                else if (choice == Option_ReturnChange)
                {
                    DisplayReturnedChange();
                    Console.ReadKey();
                }
                else if (choice == Option_ReturnToPreviousMenu)
                {
                    Console.WriteLine(" Returning to previous menu. ");
                    Console.ReadKey();
                    return;
                }
                else
                {
                    DisplayInvalidOption();
                }
            }
        }