/// <summary>
        /// Меню выбора пользователя.
        /// </summary>
        public void HelloMenu()
        {
            Console.WriteLine("Добро пожаловать в помощника по управлению доходами.");
            string name;

            while (true)
            {
                Console.Write("Введите ваш логин: ");
                name = Console.ReadLine();
                if (name == null)
                {
                    Console.WriteLine("Логин не может быть пустым. \n Попробуйте еще раз:");
                }
                else
                {
                    break;
                }
            }

            var userController    = new UserController(name);
            var incomeController  = new IncomeController(userController.CurrentUser);
            var expenseController = new ExpenseController(userController.CurrentUser);

            MainMenu(userController.CurrentUser, incomeController, expenseController, userController);


            Console.WriteLine("До свидания " + userController.CurrentUser.Name);
            Console.WriteLine("Чтобы закрыть приложение нажмите \"Enter\".");
            Console.ReadLine();
        }
 /// <summary>
 /// Добавить доход.
 /// </summary>
 /// <param name="incomeController"></param>
 private void AddIncome(IncomeController incomeController)
 {
     while (true)
     {
         Console.Clear();
         Console.WriteLine("Для выхода введите \"0\".");
         Console.WriteLine("Введите размер дохода:");
         if (int.TryParse(Console.ReadLine(), out int resultIncome))
         {
             if (resultIncome == 0)
             {
                 break;
             }
             else
             {
                 incomeController.AddIncome(resultIncome);
                 break;
             }
         }
         else
         {
             Console.WriteLine("Некорректный ввод");
         }
     }
 }
 /// <summary>
 /// Статистика за все время.
 /// </summary>
 /// <param name="currentUser"></param>
 /// <param name="incomeController"></param>
 /// <param name="expenseController"></param>
 public void TotalStatistics(User currentUser,
                             IncomeController incomeController,
                             ExpenseController expenseController)
 {
     Console.Clear();
     Console.WriteLine($"Суммарных доход за все время - {currentUser.Income.TotalIncome}");
     Console.WriteLine($"Суммарных расход за все время - {currentUser.Expense.TotalExpense}");
     Console.WriteLine($"Средний ежемесячный доход - {incomeController.GetAverageMonthlyIncome()}");
     Console.WriteLine($"Средний ежемесячный расход - {expenseController.GetAverageMonthlyExpense()}");
     Console.WriteLine($"Остаток от дохода за этот месяц - {currentUser.Income.CurrentMonthIncome - currentUser.Expense.CurrentMonthExpenses}");
     Console.WriteLine();
     for (var i = 0; i < currentUser.Expense.TypesExpense.Count; i++)
     {
         Console.WriteLine($"Расходы типа \"{currentUser.Expense.TypesExpense[i]}\" - {currentUser.Expense.TypesExpense[i].ExpensesAmount}");
     }
     Console.WriteLine("Нажмите \"Enter\" чтобы выйти в меню.");
     Console.ReadLine();
 }
        /// <summary>
        /// Главное меню.
        /// </summary>
        /// <param name="currentUser"></param>
        /// <param name="incomeController"></param>
        /// <param name="expenseController"></param>
        /// <param name="userController"></param>
        public void MainMenu(User currentUser,
                             IncomeController incomeController,
                             ExpenseController expenseController,
                             UserController userController)
        {
            var flag = true;

            while (flag)
            {
                ResetMonthlyExpenseAndIncome(currentUser);
                Console.Clear();
                MenuCommands(currentUser);
                int input;
                if (int.TryParse(Console.ReadLine(), out int result))
                {
                    input = result;
                }
                else
                {
                    continue;
                }
                switch (input)
                {
                case 1:
                    Console.Clear();
                    TotalStatistics(currentUser, incomeController, expenseController);
                    userController.Save();
                    break;

                case 2:
                    Console.Clear();
                    expenseController.GetEveryDayExpense(userController);
                    userController.Save();
                    break;

                case 3:
                    Console.Clear();
                    AddIncome(incomeController);
                    userController.Save();
                    break;

                case 4:
                    Console.Clear();
                    expenseController.SetExpenseOfType(userController);
                    userController.Save();
                    break;

                case 5:
                    OutputExpenseHistory(currentUser);
                    break;

                case 6:
                    OutputIncomeHistory(currentUser);
                    break;

                case 0:
                    flag = false;
                    Console.Clear();
                    userController.Save();
                    break;

                default:
                    break;
                }
            }
        }