private void CreateServices() { if (SelectedTemplate == null || !DateCreationStart.HasValue || !DateCreationEnd.HasValue) { return; } if (DateCreationStart.Value > DateCreationEnd.Value) { MessageBox.Show("Das Enddatum darf nicht vor dem Startdatum liegen.", "Fehleingabe", MessageBoxButton.OK, MessageBoxImage.Error); return; } var allExistingServices = Workspace.CurrentData.Services.Where(x => x.DateAndTime.Date >= this.DateCreationStart.Value && x.DateAndTime.Date <= this.DateCreationEnd.Value).ToList(); if (allExistingServices.Any()) { if (MessageBox.Show("Es sind bereits Gottesdienste in diesem Zeitraum vorhanden. Diese werden durch diese Aktion ersetzt. Möchten Sie fortfahren?", "Daten bereits vorhanden", MessageBoxButton.YesNo, MessageBoxImage.Warning) != MessageBoxResult.Yes) { return; } allExistingServices.ForEach(x => { Workspace.CurrentData.Services.Remove(x); Workspace.CurrentData.ServiceJobs.Where(j => x.Id == j.ServiceId).ToList().ForEach(j => Workspace.CurrentData.ServiceJobs.Remove(j)); }); Workspace.RegisterDataChanged(); } var templateServices = Workspace.CurrentData.ServiceTemplates.Where(x => x.GroupId == this.SelectedTemplate.Id).ToList(); for (DateTime date = DateCreationStart.Value; date <= DateCreationEnd.Value; date = date.AddDays(1)) { var servicesToCreate = templateServices.Where(x => x.Day == date.DayOfWeek).ToList(); foreach (var serviceToCreate in servicesToCreate) { var newService = ServiceModel.CreateNewService(); newService.DateAndTime = date + serviceToCreate.Time; Workspace.RegisterDataChanged(); foreach (var job in serviceToCreate.Jobs) { ServiceJobModel.CreateNewServiceJob(newService.Id, job); } } } }
private void AddNewService() { this.AllServices.Add(new ServiceViewModel(ServiceModel.CreateNewService())); Workspace.RegisterDataChanged(); SelectedIndex = this.AllServices.Count - 1; }