private void InputFromConsole() { Console.Clear(); bool working = true; DateTime?date; decimal? value; string incomeFrom; string notes; while (working) { date = CustomActionUI.InputDate("Введите дату расхода (пустая строка - завершить): ", true); if (date == null) { return; } if (date < ledger.MinWorkingDate) { Console.WriteLine($"Минимальная допустимая дата {ledger.MinWorkingDate.ToString("dd.MM.yyyy")}"); continue; } value = CustomActionUI.InputDecimal($"Укажите сумму расхода: ", false); string[] articleItems = { "Питание", "Коммунальные платежи", "Проезд", "Одежда/обувь", "Хобби", "Обустройство дома, ремонт", "Развлечение", "Подардки", "Прочие" }; int choice = CustomActionUI.ShowMenu("Выберите статью расхода: ", articleItems, false); if (choice == articleItems.Length - 1) { Console.WriteLine("Укажите иную статью расхода: "); incomeFrom = Console.ReadLine(); } else { incomeFrom = articleItems[choice - 1]; } Console.Write("Примечание: "); notes = Console.ReadLine(); try { if (!ledger.AddExpense((DateTime)date, (decimal)value, incomeFrom, notes)) { Console.WriteLine(ledger.ErrorMessage); Console.ReadKey(); } } catch (Exception e) { Console.WriteLine(e.Message); Console.ReadKey(); } } }