public MainWindowViewModel(JournalService service, OptionsService optionService, OptionsViewModel options) { Profils = new ObservableCollection <ProfilViewModel>(); journalService = service; OptionsViewModel = options; PersonnageInfo = new PersonnageInfoViewModel(optionService); CreateProfilCommand = new RelayCommand(CreateProfil); SaveDataCommand = new RelayCommand(SaveDatas); GenerateHtmlCommand = new RelayCommand(GenerateAndPreview); DisplayResultCommand = new RelayCommand(GenerateAndOpen); DisplayOptionDialogCommand = new RelayCommand(OpenOptionDialog); PropertyChanged += OnPropertyChanged; CurrentZoom = 1; CurrentPanX = 0; CurrentPanY = 0; }
private void OnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs) { switch (propertyChangedEventArgs.PropertyName) { case CurrentProfilePropertyName: PersonnageInfo.Personnage.Periodes.Clear(); PersonnageInfo.Personnage.Relations.Clear(); if (CurrentProfile != null) { OptionsViewModel.Load(CurrentProfile.Header); Personnage personnage = journalService.ParseDatas(CurrentProfile.Header); if (personnage != null && personnage.Periodes != null) { foreach (var relation in personnage.Relations) { relation.Type = relation.Type == null ? null : OptionsViewModel.Options.TypesRelation.FirstOrDefault(tr => tr.Nom == relation.Type.Nom); PersonnageInfo.Personnage.Relations.Add(relation); } bool update = false; foreach (var periode in personnage.Periodes) { if (!update && !OptionsViewModel.Options.HideUpdate && !PersonnageInfoViewModel.VerifierPositionPeriode(periode)) { update = YesNoCancelDialogViewModel.ShowDialog("Des différences de position ont été trouvées entre ce profil et notre super base de données de ouf.\nVeux-tu mettre à jour tes données en conséquences ?", "Mise à jour, bonjour !", "Oui", "Non", null) == MessageBoxResult.Yes; if (!update) { OptionsViewModel.Options.HideUpdate = true; OptionsViewModel.Save(CurrentProfile.Header); YesNoCancelDialogViewModel.ShowDialog("C'était bien la peine d'ajouter la configuration des lieux.", "Ca fait plaisir.", "Ok TG.", null, null); YesNoCancelDialogViewModel.ShowDialog("Heureusement que je me casse pas le cul pour rien.", "Ca fait plaisir.", "Nan mais vraiment tais-toi.", null, null); } } PersonnageInfo.AddPeriode(periode, update); } } } break; } }