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(); } }
private void CreatePlanungswocheCommandExecute() { if (!CanCreatePlanungswocheCommandExecute()) { return; } var am = new ArbeitswochenService(); var aw = am.CreateArbeitswoche(Jahr, KalenderWoche); var ms = new SerializationService(); aw.Mitarbeiter = new List <Common.Entities.Mitarbeiter>(ms.ReadMitarbeiterListe()); var vm = aw.MapArbeitswocheToViewmodel(); ArbeitswochenCollection.Add(vm); SelectedArbeitswoche = vm; ArbeitswocheVorschau.Refresh(); }
private void DeletePlanungswocheCommandExecute() { if (!CanDeletePlanungswocheCommandExecute()) { return; } var dlg = MessageBox.Show($"Wollen Sie die Arbeitswoche: {SelectedArbeitswoche.KalenderWoche}/{SelectedArbeitswoche.Jahr} wirklich löschen?", "Planungswoche löschen", MessageBoxButton.YesNo, MessageBoxImage.Question); if (dlg != MessageBoxResult.Yes) { return; } ArbeitswochenCollection.Remove(SelectedArbeitswoche); if (ArbeitswochenCollection.Count == 0) { return; } SelectedArbeitswoche = ArbeitswochenCollection.First(); ArbeitswocheVorschau.Refresh(); }