private async void RunPlanungCommandExecute() { if (!CanRunPlanungCommandExecute()) { return; } if (SelectedArbeitswoche.PlanungProMitarbeiterListe.Any(x => x.HasPlanzeitenEntries)) { var dlg = _msg.ShowYesNo("Wollen Sie eine neue Planung durchführen?", CustomDialogIcons.Question); if (dlg == CustomDialogResults.No) { return; } } IsBusy = true; try { var woche = SelectedArbeitswoche.MapViewmodelToArbeitswoche(); await Task.Run(() => PlanService.ErstelleWochenplan(woche, woche.Mitarbeiter)); var neu = woche.MapArbeitswocheToViewmodel(); ArbeitswochenCollection.Remove(SelectedArbeitswoche); ArbeitswochenCollection.Add(neu); SelectedArbeitswoche = neu; ArbeitswocheVorschau.Refresh(); SelectedPlanungswocheMitarbeiterItem = SelectedArbeitswoche.PlanungProMitarbeiterListe.First(); FocusToBindingPath = nameof(ArbeitswocheVorschau); } catch (Exception ex) { MessageBox.Show($"Fehler beim Ausführen der Planung.{Environment.NewLine}{ex.GetAllErrorMessages()}"); } finally { IsBusy = false; CommandManager.InvalidateRequerySuggested(); } }