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}\" создана."); }