/// <summary> /// Méthode qui vérifie si le compte membre actuellement connecté existe sur un serveur de base de données et s'il est administrateur /// </summary> /// <param name="stringConnexion">String de la connexion du serveur de base de données qui sera testé dans le format attendu par MySql</param> /// <returns>Vrai si le compte membre existe et s'il est administrateur, sinon faux</returns> private bool IsAdminOnNewConnexion(string stringConnexion) { try { //Crée un nouveau MySqlMembreService avec la stringConnexion spécifique. IMembreService serviceMembre = new MySqlMembreService(stringConnexion); //Récupère seulement les admins IList <Membre> adminsDansNouvelleSession = serviceMembre.RetrieveAdmins(); //Lance une exception si le Where ne retourne rien, l'exception est géré de toute façon par le try/catch. //Vérifie si un compte avec le même nom d'utilisateur et mot de passe que selui du compte membre actuellement connecté existe. Membre membreCorrespondant = adminsDansNouvelleSession.Where(membre => membre.NomUtilisateur == App.MembreCourant.NomUtilisateur && membre.MotPasse == App.MembreCourant.MotPasse).First(); //Redondant, car on retrieves les admins et si membreCorrespondant est null, la lambda lance une exception. if (membreCorrespondant != null && membreCorrespondant.EstAdministrateur) { //Mauvaise méthode pour le faire, mais au cas le compte à des info différentes sur le nouveau serveur de base de données, il faudrait remplacer App.MembreCourant //avant le changement de session: App.MembreCourant = membreCorrespondant; return(true); } else { return(false); } } //N'importe quel erreur dans le teste, on retourne false pour empêcher le changement de connexion. catch (Exception e) { Console.WriteLine(e.Message); return(false); } }
private bool IsAdminOnNewConnexion(string stringConnexion) { try { IMembreService serviceMembre = new MySqlMembreService(stringConnexion); IList<Membre> adminsDansNouvelleSession = serviceMembre.RetrieveAdmins(); //Lance une exception si le Where ne retourne rien, l'exception est géré de toute façon. Membre membreCorrespondant = adminsDansNouvelleSession.Where(membre => membre.NomUtilisateur == App.MembreCourant.NomUtilisateur && membre.MotPasse == App.MembreCourant.MotPasse).First(); //Redondant, car on retrieves les admins et si membreCorrespondant est null, la lambda lance une exception. if (membreCorrespondant != null && membreCorrespondant.EstAdministrateur) { //Mauvaise place pour le faire, mais au cas le compte à des info différentes: App.MembreCourant = membreCorrespondant; return true; } else return false; } catch (Exception e) { Console.WriteLine(e.Message); return false; } }
/// <summary> /// Méthode qui vérifie si le compte membre actuellement connecté existe sur un serveur de base de données et s'il est administrateur /// </summary> /// <param name="stringConnexion">String de la connexion du serveur de base de données qui sera testé dans le format attendu par MySql</param> /// <returns>Vrai si le compte membre existe et s'il est administrateur, sinon faux</returns> private bool IsAdminOnNewConnexion(string stringConnexion) { try { //Crée un nouveau MySqlMembreService avec la stringConnexion spécifique. IMembreService serviceMembre = new MySqlMembreService(stringConnexion); //Récupère seulement les admins IList<Membre> adminsDansNouvelleSession = serviceMembre.RetrieveAdmins(); //Lance une exception si le Where ne retourne rien, l'exception est géré de toute façon par le try/catch. //Vérifie si un compte avec le même nom d'utilisateur et mot de passe que selui du compte membre actuellement connecté existe. Membre membreCorrespondant = adminsDansNouvelleSession.Where(membre => membre.NomUtilisateur == App.MembreCourant.NomUtilisateur && membre.MotPasse == App.MembreCourant.MotPasse).First(); //Redondant, car on retrieves les admins et si membreCorrespondant est null, la lambda lance une exception. if (membreCorrespondant != null && membreCorrespondant.EstAdministrateur) { //Mauvaise méthode pour le faire, mais au cas le compte à des info différentes sur le nouveau serveur de base de données, il faudrait remplacer App.MembreCourant //avant le changement de session: App.MembreCourant = membreCorrespondant; return true; } else return false; } //N'importe quel erreur dans le teste, on retourne false pour empêcher le changement de connexion. catch (Exception e) { Console.WriteLine(e.Message); return false; } }