public void CalculateInspectionDates() { var dateTimes = new List <DateTime>(); InspectionsDates.Clear(); if (!IsRepeating) { InspectionsDates.Add(StartDate); } else { foreach (var schedule in TaskSchedules) { var dt = schedule.InspectionDateTime; while (dt <= EndDate) { if (!dateTimes.Any(t => t.Equals(dt))) { dateTimes.Add(dt); } dt = AddTimeSpan(dt, schedule.IntervalFrequency.Name, schedule.Interval); } } dateTimes.Sort(); dateTimes.ForEach(i => InspectionsDates.Add(i)); } }
public void SaveInspection() { if (!CheckInput()) { return; } if (SelectedTask == null) { SelectedTask = new Task(); } SelectedTask.Checklist = SelectedChecklist; SelectedTask.Customer = SelectedCustomer; SelectedTask.DateTimeStart = StartDate; SelectedTask.DatetimeCreated = DateTime.Now; SelectedTask.Inspections = new List <Inspection>(); InspectionsDates.ToList().ForEach(i => SelectedTask.Inspections.Add(NewInspectionObject(i))); SelectedTask.ParkingLot = SelectedParkingLot; SelectedTask.Remarks = SelectedTask.Remarks.Trim(); SelectedTask.TaskSchedules = TaskSchedules.ToList(); SelectedTask.DateTimeEnd = IsRepeating ? EndDate : SelectedTask.Inspections.Max(x => x.DateTimePlanned); if (_taskRepository.Add(SelectedTask)) { MessageBox.Show($"Inspectieopdracht voor klant {SelectedCustomer.Name} met {SelectedTask.Inspections.Count} inspecties is opgeslagen"); _router.GoTo(ControlType.TaskOverviewControl); return; } SaveErrorMessage = "Opslaan van inspectieopdracht mislukt."; }