Exemplo n.º 1
0
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("1 - Добавить задание в расписание");
                if (schedule.Tasks.Count > 0)
                {
                    Console.WriteLine("2 - Удалить задание из расписания");
                    Console.WriteLine("3 - Редактировать задание из расписания");
                    Console.WriteLine("4 - Отобразить расписание");
                    Console.WriteLine("5 - Сортировать расписание по дате добавления");
                    Console.WriteLine("6 - Сортировать расписание по дате завершения задания");
                    Console.WriteLine("7 - Отобразить список текущих дел");
                    Console.WriteLine("8 - Отобразить список просроченных дел");
                    Console.WriteLine("9 - Сохранить в расписание в файл");
                }
                Console.WriteLine("10 - Загрузить расписание из файла");
                Console.WriteLine("11 - Выход");
                Console.Write("Ваш выбор: ");
                try
                {
                    int keyCode = Convert.ToInt32(Console.ReadLine());
                    switch (keyCode)
                    {
                    case 1:
                    {
                        Console.Clear();
                        Console.Write("Введите название задания: ");
                        string nameTask = Console.ReadLine();
                        Console.Write("Введите дату завершения задания в формате(dd.mm.yyyy ): ");
                        DateTime completionDate = Convert.ToDateTime(Console.ReadLine());
                        schedule.AddTask(nameTask, completionDate);
                        Console.Clear();
                        break;
                    }

                    case 2:
                    {
                        if (!CheckTasksExist(schedule))
                        {
                            break;
                        }
                        ;
                        Console.Clear();
                        Console.Write("Введите название удаляемой задачи: ");
                        string nameTask = Console.ReadLine();
                        schedule.DeleteTask(nameTask);
                        Console.Clear();
                        break;
                    }

                    case 3:
                    {
                        if (!CheckTasksExist(schedule))
                        {
                            break;
                        }
                        ;
                        Console.Clear();
                        Console.Write("Введите название редактируемой задачи: ");
                        string nameTask = Console.ReadLine();
                        Console.Write("Введите новое название задачи: ");
                        string newNameTask = Console.ReadLine();
                        Console.Write("Введите новую дату завершения задания в формате(dd.mm.yyyy ):");
                        DateTime completionDate = Convert.ToDateTime(Console.ReadLine());
                        schedule.EditTask(nameTask, new Task(newNameTask, completionDate));
                        Console.Clear();
                        break;
                    }

                    case 4:
                    case 5:
                    case 6:
                    {
                        if (!CheckTasksExist(schedule))
                        {
                            break;
                        }
                        ;
                        switch (keyCode)
                        {
                        case 5:
                        {
                            schedule.SortTasksByCreationDate();
                            break;
                        }

                        case 6:
                        {
                            schedule.SortTasksByCompletionDate();
                            break;
                        }
                        }
                        Console.Clear();
                        Console.WriteLine(schedule.PrintTasksList());
                        break;
                    }

                    case 7:
                    {
                        if (!CheckTasksExist(schedule))
                        {
                            break;
                        }
                        ;
                        Console.Clear();
                        Console.WriteLine(schedule.PrintCurrentTasks());
                        break;
                    }

                    case 8:
                    {
                        if (!CheckTasksExist(schedule))
                        {
                            break;
                        }
                        ;
                        Console.Clear();
                        Console.WriteLine(schedule.PrintOverdueTasks());
                        break;
                    }

                    case 9:
                    {
                        if (!CheckTasksExist(schedule))
                        {
                            break;
                        }
                        ;
                        Console.Clear();
                        string          path       = "Schedule.bin";
                        FileStream      fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
                        BinaryFormatter bformatter = new BinaryFormatter();
                        bformatter.Serialize(fileStream, schedule);
                        fileStream.Close();
                        Console.WriteLine("Расписание было успешно сохранено в файл Schedule.bin в папке с .exe");
                        break;
                    }

                    case 10:
                    {
                        Console.Clear();
                        string path = "Schedule.bin";
                        try
                        {
                            FileStream      fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
                            BinaryFormatter formatter  = new BinaryFormatter();
                            schedule = (Schedule)formatter.Deserialize(fileStream);
                            fileStream.Close();
                            Console.WriteLine("Рассписание загружено из файла Schedule.bin из папки с .exe");
                            schedule.PrintTasksList();
                        } catch (FileNotFoundException fnfe)
                        {
                            Console.Clear();
                            Console.WriteLine(fnfe.Message);
                            Console.WriteLine("Отсутствует файл с сохранёнными записями !");
                        }
                        break;
                    }

                    case 11: return;

                    default:
                    {
                        Console.WriteLine("Вы ввели неверный код !");
                        break;
                    }
                    }
                } catch (FormatException fe)
                {
                    Console.WriteLine(fe.Message);
                }
                WaitInteraction();
            }
        }