Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }