Ejemplo n.º 1
0
        public static Reminder CreateReminder(Meeting meeting)
        {
            var reminderDate = ConsoleReaders.ReadDateTime("Введите дату напоминания",
                                                           new List <ValidationRule <DateTime> >
            {
                new ValidationRule <DateTime>(d => d < meeting.StartDate, "Дата напоминания не может быть после начала встречи")
            }, () => meeting.StartDate.Date);

            return(new Reminder(meeting, reminderDate));
        }
        public override void DoAction(Meeting meeting)
        {
            var newEndData = ConsoleReaders.ReadDateTime(validationRules:
                                                         new List <ValidationRule <DateTime> >
            {
                new ValidationRule <DateTime>(d => d > DateTime.Now, "Дата не может быть в прошлом"),
                new ValidationRule <DateTime>(d => d >= meeting.StartDate, "Дата начала не может быть раньше начала")
            });

            if (!_meetingInteractor.CheckIntersect(meeting.StartDate, newEndData, meeting))
            {
                return;
            }

            meeting.EndDate = newEndData;
            ConsoleUtils.WriteSuccess("Дата окончания изменена");
        }
        public override void DoAction()
        {
            var meetingName = ConsoleReaders.ReadString("Введите название встречи",
                                                        new List <ValidationRule <string> >
            {
                new ValidationRule <string>(s => !string.IsNullOrWhiteSpace(s), "Имя встречи не может быть пустым"),
                new ValidationRule <string>(s => !_meetingRepository.GetMeetings(m => m.Name == s).Any(),
                                            "Встреча с данным названием уже существует")
            });

            var startDate = ConsoleReaders.ReadDateTime("Введите начало встречи",
                                                        new List <ValidationRule <DateTime> >
            {
                new ValidationRule <DateTime>(d => d > DateTime.Now, "Дата начала встречи не может быть в прошлом")
            });

            var endDate = ConsoleReaders.ReadDateTime("Введите окончание встречи",
                                                      new List <ValidationRule <DateTime> >
            {
                new ValidationRule <DateTime>(d => d >= startDate, "Дата окончания встречи не может быть раньше начала")
            }, () => startDate.Date);

            var meeting = new Meeting(meetingName, startDate, endDate);

            if (!_meetingInteractor.CheckIntersect(meeting.StartDate, meeting.EndDate))
            {
                return;
            }

            _meetingRepository.AddMeeting(meeting);

            var reminder = TryAddReminder(meeting);

            if (reminder != null)
            {
                meeting.Reminders.Add(reminder);
            }

            ConsoleUtils.WriteSuccess($"Встреча \"{meeting}\" создана.");
        }