/// <summary> /// Sauvegarde dans le fichier les modifications apportés un mot de passe, ou l'ajout de ce dernier /// </summary> /// <returns>les erreurs éventuellements générés</returns> public async Task <string> Save() { var retour = Validate(); //si aucune erreur if (string.IsNullOrWhiteSpace(retour)) { //en cas d'ajout du mot de passe if (Action.Equals(ActionMotDePasseEnum.Ajouter)) { var mdp = new MotDePasse { Titre = Titre, Login = Login, MotDePasseObjet = Password, SiteWeb = Site, Commentaire = Commentaire, DossierPossesseur = DossierPossesseur, IdIcone = SelectedIcone }; var res = ContexteAppli.ListeIcone.Where(x => (int)x.Tag == SelectedIcone).ToList(); if (res.Count > 0) { mdp.Icone = (BitmapImage)res[0].Source; } else { mdp.Icone = null; } DossierPossesseur.ListeMotDePasse.Add(mdp); } //en cas de modification placement des nouvelles informations if (Action.Equals(ActionMotDePasseEnum.Modifier)) { PasswordOriginal.Titre = Titre; PasswordOriginal.Login = Login; PasswordOriginal.MotDePasseObjet = Password; PasswordOriginal.IdIcone = SelectedIcone; PasswordOriginal.Commentaire = Commentaire; PasswordOriginal.SiteWeb = Site; var res = ContexteAppli.ListeIcone.Where(x => (int)x.Tag == PasswordOriginal.IdIcone).ToList(); if (res.Count > 0) { PasswordOriginal.Icone = (BitmapImage)res[0].Source; } else { PasswordOriginal.Icone = null; } } //sauvegarde await PasswordBusiness.Save(); //mise à jour de la liste de cortana await CortanaBusiness.UpdateCortana(); } return(retour); }
/// <summary> /// Charge un fichier de mot de passe, ou le créer si aucun /// </summary> /// <returns>les erreurs à afficher</returns> public async Task <string> Valider() { var retour = Validate(); if (string.IsNullOrWhiteSpace(retour)) { //si le fichier est à créer if (ModeSelect.Equals(ModeOuvertureEnum.FichierACreer)) { PasswordBusiness.Password = MotDePasseA; await PasswordBusiness.Save(); } if (ModeSelect.Equals(ModeOuvertureEnum.FichierDejaExistant)) { if (!await PasswordBusiness.Load(MotDePasseA, true)) { retour += ResourceLoader.GetForCurrentView("Errors").GetString("erreurOuvertureFichier"); } else { if (ContexteAppli.IsCortanaActive) { await CortanaBusiness.CheckPassword(); } } } } return(retour); }
/// <summary> /// supprime un mot de passe des données de l'utilisateur et sauvegarde le fichier /// </summary> public async Task SupprimerMotDepasse() { Password.DossierPossesseur.ListeMotDePasse.Remove(Password); await PasswordBusiness.Save(); //mise à jour de la liste de cortana await CortanaBusiness.UpdateCortana(); }
/// <summary> /// Change l'emplacement du mot de passe avec le dossier en cours de navigation /// </summary> public async Task ChangerEmplacementMotDePasse() { Password.DossierPossesseur.ListeMotDePasse.Remove(Password); DossierEncours.ListeMotDePasse.Add(Password); Password.DossierPossesseur = DossierEncours; await PasswordBusiness.Save(); SelectedDossierAbstract = DossierEncours; }
/// <summary> /// Ajoute le nouveau dossier au dossier en cours et sauvegarde le tout /// </summary> /// <returns>les erreurs à afficher</returns> public async Task <string> AjouterDossier() { var retour = ValidateDossier(DossierToEditName); if (string.IsNullOrWhiteSpace(retour)) { var newDossier = new Dossier(DossierToEditName, DossierSelected); DossierSelected.SousDossier.Add(newDossier); await PasswordBusiness.Save(); OuvrirDossier(DossierSelected); } return(retour); }
/// <summary> /// change le mot de passe et sauvegarde le fichier /// </summary> /// <returns>les erreurs du validate sinon une ssting vide</returns> public async Task <string> ChangerMdp() { var retour = Validate(); if (string.IsNullOrWhiteSpace(retour)) { PasswordBusiness.Password = NewMdp; await PasswordBusiness.Save(); //si cortana est activé, changer le fichier if (CortanaActive != null && CortanaActive.Value) { await CortanaBusiness.SavePassword(); } } return(retour); }
/// <summary> /// supprime un dossier /// </summary> /// <param name="toDelete">le dossier à effacer</param> /// <returns>les erreurs à afficher</returns> public async Task <string> SuppprimerDossier(Dossier toDelete) { var resourceLoader = ResourceLoader.GetForCurrentView("Errors"); if (toDelete != null) { if (toDelete.DossierParent != null) { toDelete.DossierParent.SousDossier.Remove(toDelete); await PasswordBusiness.Save(); OuvrirDossier(DossierSelected); } } else { return(resourceLoader.GetString("erreurAucunDossierToSup") + "\r\n"); } return(""); }
/// <summary> /// modifie le nom d'un dossier /// </summary> /// <returns>les erreurs</returns> public async Task <string> ModifierDossier() { var resourceLoader = ResourceLoader.GetForCurrentView("Errors"); var retour = ValidateDossier(DossierToEditName); if (string.IsNullOrWhiteSpace(retour)) { if (DossierToEdit != null) { DossierToEdit.Titre = DossierToEditName; await PasswordBusiness.Save(); OuvrirDossier(DossierSelected); } else { retour += resourceLoader.GetString("erreurAucunDossier") + "\r\n"; } } return(retour); }
/// <summary> /// Lance l'opération de récupération des mots de passe /// </summary> /// <returns>les erreurs à afficher.</returns> public async Task <string> Recuperer() { ValidSave = false; if (IsLog) { var erreur = Validate(); if (string.IsNullOrWhiteSpace(erreur)) { foreach (var mdp in ListeMotDePasses.Where(mdp => mdp.Selected)) { if (mdp.IdIcone != 0 && mdp.IdIcone < ContexteAppli.ListeIcone.Count) { mdp.Icone = (BitmapImage)ContexteAppli.ListeIcone[mdp.IdIcone].Source; } else { mdp.Icone = null; } if (mdp.DossierPossesseur == null) { mdp.DossierPossesseur = ContexteAppli.DossierMere; } mdp.DossierPossesseur.ListeMotDePasse.Add(mdp); } await PasswordBusiness.Save(); ValidSave = true; return(ResourceLoader.GetForCurrentView("Errors").GetString("infoMdpAjoute")); } return(erreur); } return(ResourceLoader.GetForCurrentView("Errors").GetString("erreurFichierPasOuvert")); }
private async void validerButton_Click(object sender, RoutedEventArgs e) { WaitRing.IsActive = true; ValiderButton.IsEnabled = false; ParcourirButton.IsEnabled = false; ChangerDossierButton.IsEnabled = false; EraseCheckBox.IsEnabled = false; MdpTextbox.IsEnabled = false; var erreur = ""; try { //vérification du format if (FormatComboBox.SelectedItem != null) { ViewModel.FormatChoisi = ((ImportExportViewModel.ExportFormat)FormatComboBox.SelectedItem); } else { erreur = ResourceLoader.GetForCurrentView("Errors").GetString("erreurAucunFormat"); } ViewModel.MdpCypher = MdpTextbox.Password; //ViewModel.SelectedDossier = ContexteAppli.PageViewMere.GetDossierSelected(); switch (ViewModel.Mode) { case ImportExportEnum.Import: switch (ViewModel.FormatChoisi.Id) { case 1: erreur = await ViewModel.ImporterCsv(); break; case 2: erreur = await ViewModel.ImporterXml(); break; case 3: erreur = await ViewModel.ImporterKwi(); break; } break; case ImportExportEnum.Export: switch (ViewModel.FormatChoisi.Id) { case 1: erreur = await ViewModel.ExporterCsv(); break; case 2: erreur = await ViewModel.ExporterXml(); break; case 3: erreur = await ViewModel.ExporterKwi(); break; } break; } if (!string.IsNullOrWhiteSpace(erreur)) { TextBlockErreur.Text = erreur; } else { await PasswordBusiness.Save(); //mise à jour de la liste de cortana await CortanaBusiness.UpdateCortana(); switch (ViewModel.Mode) { case ImportExportEnum.Import: await MessageBox.ShowAsync(ResourceLoader.GetForCurrentView().GetString("textImportOK"), "", MessageBoxButton.Ok); break; case ImportExportEnum.Export: await MessageBox.ShowAsync(ResourceLoader.GetForCurrentView().GetString("textExportOK"), "", MessageBoxButton.Ok); break; } ((Frame)Window.Current.Content).Navigate(typeof(MainPageView)); } } catch { TextBlockErreur.Text = ResourceLoader.GetForCurrentView("Errors").GetString("erreurInconnu"); } WaitRing.IsActive = false; ValiderButton.IsEnabled = true; ParcourirButton.IsEnabled = true; ChangerDossierButton.IsEnabled = true; EraseCheckBox.IsEnabled = true; MdpTextbox.IsEnabled = true; }