static void Main(string[] args) { #region Homework_desc /// Разработать ежедневник. /// В ежедневнике реализовать возможность /// - создания /// - удаления /// - реактирования /// записей /// /// В отдельной записи должно быть не менее пяти полей /// /// Реализовать возможность /// - Загрузки даннах из файла /// - Выгрузки даннах в файл /// - Добавления данных в текущий ежедневник из выбранного файла /// - Импорт записей по выбранному диапазону дат /// - Упорядочивания записей ежедневника по выбранному полю /// /* план на задачу: * разработать класс ежедневник, каждая запись это структура с полями * * структура Event, поля: * - дата / время начала события * - дата / время окончания события * - заголовок записи * - описание * - тип записи (личное, рабочее, работа над здоровьем) - тип Enum * - родительская запись (ссылка на другую структуру Event) - опционально * * класс TaskManager * структура данных с элементами Event (массив, стек, структура, очередь) * * методы: * - создание записи * - удаление (как?) через Pop сруктуры Stack? * - редактирование записи * - загрузка данных из файла * - выгрузка данных в файл * - добавление данных в текущий ежедневник из выбранного файла * - импорт записей по выбранному диапазону дат * - упорядочивания записей ежедневника по выбранному полю (возможно есть стандартные коллекции) * */ #endregion #region todo by 07.03.2020 /* * - загружать и выгружать данные нужно в одно хранилище - вопрос к формату дат при выгрузке * - */ #endregion // главный управляющий цикл bool mainControlCycle = true; ScheduleEvents scheduleEvents = new ScheduleEvents(@"inputData.csv", @"outputData.csv"); while (mainControlCycle) { // main greeting msg MainGreetingMessage(); int answer = default; try { answer = int.Parse(Console.ReadLine()); } catch { Console.WriteLine("Неизвестная команда, попробуйте еще раз"); continue; } switch (answer) { // создать и добавить запись case 1: scheduleEvents.CreateItem(); break; // редактировать запись case 2: // в качестве демонстрации передаем индекс последнего элемента scheduleEvents.EditEvent(scheduleEvents.eventList.Count - 1); break; // удаляем запись case 3: // в качестве демонстрации передаем индекс последнего элемента scheduleEvents.RemoveEvent(scheduleEvents.eventList.Count - 1); break; // загрузить данные из хранилища из основного хранилища inputData case 4: scheduleEvents.Load(); break; // выгрузить данные в хранилище addData (не основное хранилище) case 5: scheduleEvents.Unload(); break; // загрузить данные в ежедневник из выбранного файла по диапазону дат case 6: // демонстрация - диапазон дат задан фиксированно LoadDataByRange(scheduleEvents); break; // отсортировать ежедневник по дате окончания case 7: scheduleEvents.SortSchedulebyEndEvent(); break; // отсортировать ежедневник по названию мероприятия case 8: scheduleEvents.SortScheduleByTitle(); break; // вывод ежедневника в консоль case 9: scheduleEvents.PrintEvents(); break; default: Console.WriteLine("Неизвестная команда, попробуйте еще раз"); continue; } } Console.ReadKey(); }