public async Task <string> SaveScheduleValidation(InspectionScheduleViewModel data) { var testInspectionSchedule = new InspectionSchedule { InspectionScheduleId = data.Id, ProcessId = data.ProcessId, StartDate = data.StartTime, Timeslot = (await _prepareService.GetTimeslots(data.TimeslotId)).FirstOrDefault(), RecurrenceRule = data.RecurrenceRule, RecurrenceException = data.RecurrenceException }; var schedules = (await _prepareService.GetInspectionSchedulesNonFilter()).Where(_ => _.ProcessId == data.ProcessId); if (data.Id > 0) { schedules = schedules.Where(s => s.InspectionScheduleId != data.Id); } //Check validation if schedule data have same inspection in the same timeslot in the same day + recurrence var dataDates = RecurrenceHelper.GetRecurrenceDateTimeCollection(testInspectionSchedule); foreach (var schedule in schedules) { var dates = RecurrenceHelper.GetRecurrenceDateTimeCollection(schedule); var intersect = dataDates.Intersect(dates); if (intersect.Any()) { return("L'horaire pour l'inspection sélectionnée, le créneau horaire et la date existe déjà"); } } return(string.Empty); }
public Task UpdateSchedule(InspectionSchedule schedule, InspectionScheduleViewModel scheduleViewModel) { schedule.ProcessId = scheduleViewModel.ProcessId; schedule.StartDate = scheduleViewModel.StartTime.Date; schedule.TimeslotId = scheduleViewModel.TimeslotId; schedule.RecurrenceRule = scheduleViewModel.RecurrenceRule; schedule.RecurrenceException = scheduleViewModel.RecurrenceException; schedule.RecurrenceId = scheduleViewModel.RecurrenceID; schedule.MarkAsModified(); return(_prepareService.SaveInspectionSchedule(schedule)); }
public Task InsertSchedule(InspectionScheduleViewModel scheduleViewModel) { var schedule = new InspectionSchedule { ProcessId = scheduleViewModel.ProcessId, StartDate = scheduleViewModel.StartTime.Date, TimeslotId = scheduleViewModel.TimeslotId, RecurrenceRule = scheduleViewModel.RecurrenceRule, RecurrenceException = scheduleViewModel.RecurrenceException, RecurrenceId = scheduleViewModel.RecurrenceID }; schedule.MarkAsAdded(); return(_prepareService.SaveInspectionSchedule(schedule)); }