示例#1
0
        /// <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);
        }
示例#2
0
        /// <summary>
        /// Récupère les données d'un fichier CSV
        /// </summary>
        /// <returns>La liste des erreurs</returns>
        public async Task <string> ImporterCsv()
        {
            var retour = Validate();

            if (string.IsNullOrWhiteSpace(retour))
            {
                //ComFile fichierImport = new ComFile(fichier);
                var fichierImport = await FileIO.ReadTextAsync(Fichier, Windows.Storage.Streams.UnicodeEncoding.Utf8);

                var listeMotDePasse = StringUtils.Split(fichierImport, CsvRetourLigne);

                foreach (var data in listeMotDePasse)
                {
                    var dataTmp = data;
                    if (!string.IsNullOrWhiteSpace(dataTmp))
                    {
                        dataTmp = dataTmp.Remove(0, 1);
                        dataTmp = dataTmp.Remove(dataTmp.Length - 1, 1);
                        var listeData = StringUtils.Split(dataTmp, CsvCaractereFinChaine + CsvCaractereSeparateur + CsvCaractereFinChaine);
                        var motTmp    = new MotDePasse(listeData[0], listeData[1], listeData[2], SelectedDossier, listeData[3], 0, (listeData.Count <= 4)?"":listeData[4]);
                        SelectedDossier.ListeMotDePasse.Add(motTmp);
                    }
                }
                RemiseEnPlaceIcone(SelectedDossier);
            }
            return(retour);
        }
示例#3
0
 public void TestMotDePasse_unMotDePassePeutEtreDéchiffré()
 {
     string motDePasseDéchiffré = "p0uEtPou3t!:";
     MotDePasse motDePasse = new MotDePasse(motDePasseDéchiffré); ;
     Assert.AreNotEqual(motDePasseDéchiffré, motDePasse.ToString());
     Assert.AreEqual(motDePasseDéchiffré, motDePasse.déchiffrer());
 }
示例#4
0
        /// <summary>
        /// Méthode appelée quand on clique sur le bouton Se connecter
        /// </summary>
        private void Login_Click(object sender, RoutedEventArgs e)
        {
            var    win = (Application.Current.MainWindow as MetroWindow);
            string pseudo = Pseudo.Text, mdp = MotDePasse.Password;

            if (string.IsNullOrWhiteSpace(pseudo) || string.IsNullOrWhiteSpace(mdp))
            {
                win.ShowMessageAsync("Erreur lors de l'authentification", "Merci de renseigner toutes les informations :@");
                return;
            }

            // Retourne l'utilisateur contenue dans la BDD, null sinon
            var user = StockageBDD.CheckUser(pseudo, mdp);

            if (user != null)
            {
                user.Login();

                UserChangedEvent.Instance.User = user;
                win.ShowMessageAsync("Authentification réussie", "Ouiiiiiiiiiiii !");
            }
            else
            {
                MotDePasse.Clear();
                win.ShowMessageAsync("Erreur lors de l'authentification", "Mot de passe incorrect :(");
            }
        }
示例#5
0
 /// <summary>
 /// constructeur
 /// </summary>
 /// <param name="password">le mot de passe à afficher</param>
 public AfficherPasswordViewModel(MotDePasse password)
 {
     Password       = password;
     PasswordReveal = false;
     IsCommentAffich();
     IsSiteAffich();
 }
示例#6
0
        public void TestCreerMotDePasse()
        {
            MotDePasse mdp = new MotDePasse("coucou");

            Assert.AreEqual(8, mdp.Mot.Length);
            Assert.IsTrue(mdp.Verifie());
        }
示例#7
0
        static void Main(string[] args)
        {
            Collection listeLiens = new Collection();;

            listeLiens.Ajouter(new Lien("Hacker News", "https://news.ycombinator.com"));
            listeLiens.Ajouter(new Lien("Reddit", "https://reddit.com"));
            listeLiens.Ajouter(new Lien("Boing Boing", "boingboing.net"));

            string choix = "";

            while (choix != "3")
            {
                string choixPossibles = "\n0 : Lister les liens";
                choixPossibles += "\n1 : Ajouter un lien";
                choixPossibles += "\n2 : Enlever un lien";
                choixPossibles += "\n3 : Quitter";
                Console.WriteLine("Choisissez une action : " + choixPossibles);
                choix = Console.ReadLine();
                switch (choix)
                {
                case "0":
                    if (listeLiens.Compte > 0)
                    {
                        for (int i = 0; i < listeLiens.Compte; i++)
                        {
                            Console.WriteLine((i + 1) + " : " + listeLiens.Get(i));
                        }
                    }
                    else
                    {
                        Console.WriteLine("Aucun lien à afficher !");
                    }
                    break;

                case "1":
                    Console.WriteLine("Titre du lien : ");
                    string titre = Console.ReadLine();
                    Console.WriteLine("Url du lien : ");
                    string url = Console.ReadLine();
                    listeLiens.Ajouter(new Lien(titre, url));
                    break;

                case "2":
                    Console.WriteLine("Quel lien supprimer (numéro) ? ");
                    listeLiens.Enlever(int.Parse(Console.ReadLine()) - 1);
                    break;
                }
                Console.WriteLine();
            }

            Console.WriteLine("Mot de passe : ");
            MotDePasse mdp = new MotDePasse(Console.ReadLine());

            Console.WriteLine(mdp._mot);

            Console.WriteLine("Au revoir !");

            Console.ReadKey();
        }
示例#8
0
 /// <summary>
 /// Supprime un mot de passe de la liste des mots de passe sélectionné et le supprime de la chaine de caractères à afficher
 /// </summary>
 /// <param name="mdp">le mot de passe à supprimer</param>
 public void SupprimerMotDePasse(MotDePasse mdp)
 {
     if (mdp != null)
     {
         ListeMotDePasseSelected.Remove(mdp);
         GenererChaineMotDePasse();
     }
 }
示例#9
0
 /// <summary>
 /// Ajoute un mot de passe à la liste des mots de passe sélectionné et l'ajoute à la chaine de caractères à afficher
 /// </summary>
 /// <param name="mdp">le mot de passe à ajouter</param>
 public void AjouterMotDePasse(MotDePasse mdp)
 {
     if (mdp != null)
     {
         ListeMotDePasseSelected.Add(mdp);
         GenererChaineMotDePasse();
     }
 }
示例#10
0
        public void TestCompleter()
        {
            MotDePasse mdp  = new MotDePasse("wiki5");
            MotDePasse mdp1 = new MotDePasse(" ");
            MotDePasse mdp2 = new MotDePasse("wiki9edia");
            MotDePasse mdp3 = new MotDePasse("wikipedia");
            MotDePasse mdp4 = new MotDePasse("wikiped1");

            Assert.AreEqual(mdp.Verifier(mdp._mot), true);
            Assert.AreEqual(mdp1.Verifier(mdp1._mot), true);
            Assert.AreEqual(mdp2.Verifier(mdp2._mot), true);
            Assert.AreEqual(mdp3.Verifier(mdp3._mot), true);
            Assert.AreEqual(mdp4.Verifier(mdp4._mot), true);
        }
示例#11
0
        /// <summary>
        /// constructeur pour la modification d'un mot de passe
        /// </summary>
        /// <param name="password">le mot de passe à modifier</param>
        public EditPasswordViewModel(MotDePasse password)
        {
            ListeIcone = new ObservableCollection <Image>(ContexteAppli.ListeIcone);

            DossierPossesseur = password.DossierPossesseur;
            Titre             = password.Titre;
            Login             = password.Login;
            Password          = password.MotDePasseObjet;
            Site             = password.SiteWeb;
            Commentaire      = password.Commentaire;
            SelectedIcone    = password.IdIcone;
            PasswordOriginal = password;
            Action           = ActionMotDePasseEnum.Modifier;
        }
示例#12
0
        public void TestVerifier()
        {
            MotDePasse mdp  = new MotDePasse("");
            string     mot  = "wiki5";
            string     mot1 = " ";
            string     mot2 = "wiki9edia";
            string     mot3 = "wikipedia";
            string     mot4 = "wikiped1";

            Assert.AreEqual(mdp.Verifier(mot), false);
            Assert.AreEqual(mdp.Verifier(mot1), false);
            Assert.AreEqual(mdp.Verifier(mot2), true);
            Assert.AreEqual(mdp.Verifier(mot3), false);
            Assert.AreEqual(mdp.Verifier(mot4), true);
        }
示例#13
0
        /// <summary>
        /// Méthode appelée quand on clique sur le bouton inscription
        /// </summary>
        private void Registration_Click(object sender, RoutedEventArgs e)
        {
            string pseudo = Pseudo.Text, nom = Nom.Text, prenom = Prenom.Text, mdp = MotDePasse.Password;
            var    win = (Application.Current.MainWindow as MetroWindow);

            if (string.IsNullOrEmpty(pseudo) || string.IsNullOrEmpty(nom) || string.IsNullOrEmpty(prenom) || string.IsNullOrEmpty(mdp))
            {
                win.ShowMessageAsync("Erreur lors de l'inscription", "Merci de renseigner tout les champs :@");
                MotDePasse.Clear();

                return;
            }

            if (mdp.Length < 3)
            {
                win.ShowMessageAsync("Erreur lors de l'inscription", "Votre mot de passe doit faire plus de 3 caractères :(");
                return;
            }

            if (StockageBDD.CheckIfUserExists(pseudo))
            {
                win.ShowMessageAsync("Erreur lors de l'inscription", "Un utilisateur avec ce pseudo existe déjà");

                MotDePasse.Clear();
                Pseudo.Clear();

                return;
            }

            Utilisateur user = new Utilisateur(pseudo, nom, prenom, mdp);

            int insert = StockageBDD.Insert <Utilisateur>(user);

            if (insert < 0)
            {
                win.ShowMessageAsync("Erreur critique", "Impossible de vous inscrire, merci de contacter un administrateur");
                return;
            }

            UserChangedEvent.Instance.User = user;
            Switch(new FilmView(), false);
        }
示例#14
0
 public void TestMotDePasse_unMotDePassePasAssezComplexeEstInvalide()
 {
     MotDePasse motDePasse = new MotDePasse("admin123");
     Assert.IsFalse(motDePasse.estValide());
     Assert.AreEqual(VALIDATION.COMPLEXITE_MOT_DE_PASSE, motDePasse.donnerLErreur());
 }
示例#15
0
 public void TestMotDePasse_unMotDePasseTropLongEstInvalide()
 {
     MotDePasse motDePasse = new MotDePasse(TEST.CHAINEx257);
     Assert.IsFalse(motDePasse.estValide());
     Assert.AreEqual(VALIDATION.LONGUEUR_MOT_DE_PASSE, motDePasse.donnerLErreur());
 }
示例#16
0
 public void TestMotDePasse_unMotDePasseVideEstInvalide()
 {
     MotDePasse motDePasse = new MotDePasse(null);
     Assert.IsFalse(motDePasse.estValide());
     Assert.AreEqual(VALIDATION.REQUIS_MOT_DE_PASSE, motDePasse.donnerLErreur());
 }
示例#17
0
 private void MotDePasse_MouseClick(object sender, MouseEventArgs e)
 {
     MotDePasse.SelectAll();
 }