public static void AddUsager(Usager usager, string motDePasseHash)
        {
            EtatAvecMessage retour = new EtatAvecMessage();

            if (ConnexionBD.Instance().EstConnecte())
            {
                string requete = string.Format("INSERT INTO Usagers " +
                                               "(idRole, idEmploye, nomUtilisateur, motDePasse) " +
                                               "VALUES (" +
                                               "(SELECT idEmploye FROM Employes WHERE numEmploye = '{0}'," +
                                               "(SELECT idRole FROM Roles WHERE role = '{1}'," +
                                               "'{2}'," +
                                               "'{3}'"
                                               , usager.NumEmploye, usager.RoleUsager.ToString(), usager.NomUtilisateur, motDePasseHash);

                DataModelEmploye.AddEmploye(usager);
                ConnexionBD.Instance().ExecuterRequete(requete);
                // TODO : Recevoir code erreur BD dans cas d'erreur (duplicata)
            }
        }
        public static void AddEmploye(Employe employe)
        {
            EtatAvecMessage retour = new EtatAvecMessage();

            if (ConnexionBD.Instance().EstConnecte())
            {
                string requete = string.Format("INSERT INTO Employes " +
                                               "(idCitoyen, idPoste, numEmploye, numPermis, NAS) " +
                                               "VALUES (" +
                                               "(SELECT idCitoyen FROM Citoyens WHERE numAssuranceMaladie = '{0}'," +
                                               "(SELECT idPoste FROM Postes WHERE nom = '{1}'," +
                                               "'{2}'," +
                                               "'{3}'," +
                                               "'{4}'"
                                               , employe.AssMaladie, employe.Poste, employe.NumEmploye, employe.NumPermis, employe.NAS);

                //DataModelCitoyen.AddCitoyen(employe);
                ConnexionBD.Instance().ExecuterRequete(requete);
                // TODO : Recevoir code erreur BD dans cas d'erreur (duplicata)
            }
        }
        public static EtatAvecMessage ValiderIdentite(string usager, string motDePasse)
        {
            EtatAvecMessage retour = new EtatAvecMessage();

            if (ConnexionBD.Instance().EstConnecte())
            {
                int    nbUsagers = 0;
                string requete   = string.Format("SELECT nomUtilisateur, motDePasse FROM Usagers WHERE nomUtilisateur = '{0}'", usager);

                ConnexionBD.Instance().ExecuterRequete( // TODO: prevent obvious sql injection exploit -- @Clément réglé? -- Nah !
                    requete, (MySqlDataReader lecteur) =>
                {
                    string nom  = lecteur.GetString("nomUtilisateur");
                    string hash = lecteur.GetString("motDePasse");
                    if (Crypto.Verifier(motDePasse, hash))
                    {
                        retour.Etat = true;
                    }
                    else
                    {
                        retour.Message = "Nom d'utilisateur ou mot de passe invalide";
                    }
                    ++nbUsagers;
                }
                    );
                if (nbUsagers == 0)
                {
                    retour.Message = "Nom d'utilisateur ou mot de passe invalide";
                }
            }
            else
            {
                retour.Message = "Impossible de se connecter au service de données du système";
            }

            return(retour);
        }