public QuestionListVM(Entity.Festival festival) { _questionlist = new QuestionList { Title = festival.Name + " " + DateTime.Now.Year, VersionNumber = festival.QuestionLists.Count() == 0 ? 1 : (festival.QuestionLists.Last().VersionNumber) + 0.1 }; }
private void LoadEmployeesThatAreInspectors() { if (SelectedFestival == null) { return; } InspectorEmployees = new ObservableCollection <RouteData>(); _employeeRepository = new EmployeeRepository(); var employeeList = _employeeRepository.GetEmployees().Where( e => e.Role.Name == "Inspecteur" ).ToList(); var toRemove = new List <Entity.Employee>(); foreach (Entity.Employee employee in employeeList) { List <DateTime> absenceDates = employee.AbsencesDates.Select(x => x.Date.Date).ToList(); for (DateTime date = SelectedFestival.StartDate.Date; date <= SelectedFestival.EndDate.Date; date = date.AddDays(1)) { if (absenceDates.Contains(date)) { toRemove.Add(employee); break; } } } foreach (Entity.Employee employee in toRemove) { employeeList.Remove(employee); } Geodan _geodan = new Geodan("6c4c63db-de9a-11e8-8aac-005056805b87"); Entity.Festival _festival = SelectedFestival.Model; foreach (Entity.Employee employee in employeeList) { try { var responseRoute = _geodan.FindRoute($"&from={employee.City}%20{employee.Street}%20{employee.HouseNumber}&to={_festival.City}%20{_festival.Street}%20{_festival.HouseNumber}&srs=epsg:28992&returntype=coords&outputformat=json"); var routeData = new RouteData(employee, (double)responseRoute.features[0].properties.route_distance, (double)responseRoute.features[0].properties.route_duration); InspectorEmployees.Add(routeData); } catch (NoRouteException) { //No valid route was found MessageBox.Show($"Geen route gevonden voor {employee.Name},\nControleer het adres van het festival en de medewerker.", "Geen route gevonden"); InspectorEmployees.Add(new RouteData(employee, 999.9, 59940)); } } RaisePropertyChanged(() => InspectorEmployees); }