static string Modifier(TypeUtilisateur unTypeUtilisateur, string loginUtilisateur, string nomUtilisateur, string prenomUtilisateur, string mailUtilisateur, string telUtilisateur, string adresseUtilisateur, string villeUtilisateur, string cpUtilisateur, string libellePortefeuille, Utilisateur utilisateur, bool changePassword) { string motdepasse = "reste le même."; sessionFactory = new Configuration().Configure().BuildSessionFactory(); ISession session = sessionFactory.OpenSession(); using (ITransaction transaction = session.BeginTransaction()) { if (loginUtilisateur != null) { utilisateur.loginUtilisateur = loginUtilisateur; } else { return("Merci d'entrer un login d'utilisateur"); } if (nomUtilisateur != null) { utilisateur.nomUtilisateur = nomUtilisateur; } else { return("Merci d'entrer un nom d'utilisateur"); } if (prenomUtilisateur != null) { utilisateur.prenomUtilisateur = prenomUtilisateur; } else { return("Merci d'entrer un prénom d'utilisateur"); } if (mailUtilisateur != null) { utilisateur.mailUtilisateur = mailUtilisateur; } else { return("Merci d'entrer un mail d'utilisateur"); } if (telUtilisateur != null) { utilisateur.telUtilisateur = telUtilisateur; } else { return("Merci d'entrer un numéro téléphone d'utilisateur"); } if (adresseUtilisateur != null) { utilisateur.adresseUtilisateur = adresseUtilisateur; } else { return("Merci d'entrer une adresse d'utilisateur"); } if (villeUtilisateur != null) { utilisateur.villeUtilisateur = villeUtilisateur; } else { return("Merci d'entrer une ville d'utilisateur"); } if (cpUtilisateur != null) { utilisateur.cpUtilisateur = cpUtilisateur; } else { return("Merci d'entrer un code postal d'utilisateur"); } //S'il s'agit d'une modifcation pour commercial if (unTypeUtilisateur.codeTypeUtilisateur == 3 && libellePortefeuille != "") { //si l'utilisateur n'etait pas un commercial avant if (utilisateur.typeUtilisateur.codeTypeUtilisateur != 3) { Planning unNouveauPlanning = new Planning(); PorteFeuille unNouveauPortefeuille = new PorteFeuille(); unNouveauPlanning.utilisateur = utilisateur; unNouveauPortefeuille.utilisateur = utilisateur; unNouveauPortefeuille.libellePortefeuille = libellePortefeuille; utilisateur.planning = unNouveauPlanning; utilisateur.porteFeuille = unNouveauPortefeuille; } else { utilisateur.porteFeuille.libellePortefeuille = libellePortefeuille; } } else if (unTypeUtilisateur.codeTypeUtilisateur == 3 && libellePortefeuille == "") { return("Merci de rentrer un nom de portefeuille"); } //Après une migration d'un commercial vers un autre type, on supprime son affectation au planning et portefeuille else if (unTypeUtilisateur.codeTypeUtilisateur != 3) { //On supprime l'idUtilisateur dans la table portefeuille PorteFeuille portefeuille = utilisateur.porteFeuille; portefeuille.utilisateur = null; session.SaveOrUpdate(portefeuille); //On supprime l'idUtilisateur dans la table planing Planning planing = utilisateur.planning; planing.utilisateur = null; session.SaveOrUpdate(planing); //On supprime l'idPortefeuille/idPlanning dans la table Utilsiateur utilisateur.porteFeuille = null; utilisateur.planning = null; } //Une fois tous les tests bons, on peut affecter le type: utilisateur.typeUtilisateur = unTypeUtilisateur; if (changePassword == true) { //-------------------- DEBUT BLOC GENERATION DU MOT DE PASSE DU NOUVEL UTILISATEUR-------------------------- //On génère un mot de passe aléatoire pour le nouvel Utilisateur Random random = new Random(); const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; motdepasse = new string(Enumerable.Repeat(chars, 10).Select(s => s[random.Next(s.Length)]).ToArray()); // on converti la phrase random en md5 InterLogin pourMD5 = new InterLogin(); //on associe le mot de passe utilisateur.passwordUtilisateur = pourMD5.MD5Hash(motdepasse); //-------------------- FIN BLOC GENERATION DU MOT DE PASSE DU NOUVEL UTILISATEUR-------------------------- } session.SaveOrUpdate(utilisateur); transaction.Commit(); session.Dispose(); } // Une fois que tous les tests sont validés on envoie le MDP au mail du nouvel utilisateur MailMessage mail = new MailMessage(); mail.Subject = "Utilisateur modifié!"; mail.Body = "Votre utilisateur a été modifié par l'administrateur" + utilisateur.nomUtilisateur + " " + utilisateur.prenomUtilisateur + "! Votre mot de passe " + motdepasse; mail.From = new MailAddress("*****@*****.**"); mail.To.Add(utilisateur.mailUtilisateur); SmtpClient client = new SmtpClient(); client.Host = "localhost"; client.Send(mail); return("L'utilisateur a été modifié, un email lui a été envoyé."); }
private void AjouterUtilisateur(TypeUtilisateur unTypeUtilisateur, string loginUtilisateur, string nomUtilisateur, string prenomUtilisateur, string mailUtilisateur, string telUtilisateur, string adresseUtilisateur, string villeUtilisateur, string cpUtilisateur, string libellePortefeuille, string libellePlanning, bool changePassword) { sessionFactory = new Configuration().Configure().BuildSessionFactory(); ISession session = sessionFactory.OpenSession(); string motdepasse = ""; string erreur = ""; // try // { using (ITransaction transaction = session.BeginTransaction()) { // Si l'action n'a pas été faite par un gestionnaire on gère le changement de type if (!isGestionnaire) { // si c'est une modification if (utilisateur.typeUtilisateur != null) { //S'il s'agit d'une modification en commercial if (unTypeUtilisateur.codeTypeUtilisateur == 3 || utilisateur.typeUtilisateur.codeTypeUtilisateur == 3) { //si l'utilisateur n'etait pas un commercial avant if (utilisateur.typeUtilisateur.codeTypeUtilisateur != 3) { Planning unNouveauPlanning = new Planning(); unNouveauPlanning.libellePlanning = libellePlanning; unNouveauPlanning.utilisateur = utilisateur; session.SaveOrUpdate(unNouveauPlanning); PorteFeuille unNouveauPortefeuille = new PorteFeuille(); unNouveauPortefeuille.libellePortefeuille = libellePortefeuille; unNouveauPortefeuille.utilisateur = utilisateur; session.SaveOrUpdate(unNouveauPortefeuille); utilisateur.planning = unNouveauPlanning; utilisateur.porteFeuille = unNouveauPortefeuille; session.SaveOrUpdate(utilisateur); } } //Après une migration d'un commercial vers un autre type, on supprime son affectation au planning et portefeuille if (unTypeUtilisateur.codeTypeUtilisateur != 3 && utilisateur.typeUtilisateur.codeTypeUtilisateur == 3) { //On supprime l'idUtilisateur dans la table portefeuille et planning utilisateur.porteFeuille.utilisateur = null; utilisateur.planning.utilisateur = null; session.SaveOrUpdate(utilisateur.porteFeuille); session.SaveOrUpdate(utilisateur.planning); //On supprime l'idPortefeuille/idPlanning dans la table Utilsiateur utilisateur.porteFeuille = null; utilisateur.planning = null; } } } // on affecter le type: // Si l'utilisateur qui a fait l'action est un gestionnaire on met le type à commercial // On associe le type du nouvel utilisateur à 3 (commercial) if (isGestionnaire == true) { TypeUtilisateur typeUtilisateur = new TypeUtilisateur(); IList <TypeUtilisateur> lesTypesUtilisateurs = typeUtilisateur.GetLesTypesUtilisateur(); foreach (TypeUtilisateur type in lesTypesUtilisateurs) { if (type.codeTypeUtilisateur == 3) { utilisateur.typeUtilisateur = type; } } } // Sinon on renseigne le type de la form de l'admin else { utilisateur.typeUtilisateur = unTypeUtilisateur; } // On check si l'utilisateur existe, si non on crée un nouveau mdp par défaut. bool exist = session.QueryOver <Utilisateur>().Where(x => x.numUtilisateur == utilisateur.numUtilisateur).RowCount() > 0; if (!exist) { changePassword = true; } if (changePassword == true) { //-------------------- DEBUT BLOC GENERATION DU MOT DE PASSE DU NOUVEL UTILISATEUR-------------------------- //On génère un mot de passe aléatoire pour le nouvel Utilisateur Random random = new Random(); const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; motdepasse = new string(Enumerable.Repeat(chars, 10).Select(s => s[random.Next(s.Length)]).ToArray()); // on converti la phrase random en md5 InterLogin pourMD5 = new InterLogin(); //on associe le mot de passe utilisateur.passwordUtilisateur = pourMD5.MD5Hash(motdepasse); //-------------------- FIN BLOC GENERATION DU MOT DE PASSE DU NOUVEL UTILISATEUR-------------------------- } if (loginUtilisateur != null) { utilisateur.loginUtilisateur = loginUtilisateur; } else { erreur += "\nMerci d'entrer un login d'utilisateur"; } if (nomUtilisateur != null) { utilisateur.nomUtilisateur = nomUtilisateur; } else { erreur += "\nMerci d'entrer un nom d'utilisateur"; } if (prenomUtilisateur != null) { utilisateur.prenomUtilisateur = prenomUtilisateur; } else { erreur += "\nMerci d'entrer un prénom d'utilisateur"; } if (mailUtilisateur != null) { utilisateur.mailUtilisateur = mailUtilisateur; } else { erreur += "\nMerci d'entrer un mail d'utilisateur"; } if (telUtilisateur != null) { utilisateur.telUtilisateur = telUtilisateur; } else { erreur += "\nMerci d'entrer un numéro téléphone d'utilisateur"; } if (adresseUtilisateur != null) { utilisateur.adresseUtilisateur = adresseUtilisateur; } else { erreur += "\nMerci d'entrer une adresse d'utilisateur"; } if (villeUtilisateur != null) { utilisateur.villeUtilisateur = villeUtilisateur; } else { erreur += "\nMerci d'entrer une ville d'utilisateur"; } if (cpUtilisateur != null) { utilisateur.cpUtilisateur = cpUtilisateur; } else { erreur += "\nMerci d'entrer un code postal d'utilisateur"; } //S'il s'agit d'un commercial: if (utilisateur.typeUtilisateur.codeTypeUtilisateur == 3) { // Si il s'agit d'un ajout if (utilisateur.planning == null || utilisateur.porteFeuille == null) { unNouveauPlanning.libellePlanning = libellePlanning; unNouveauPortefeuille.libellePortefeuille = libellePortefeuille; unNouveauPlanning.utilisateur = utilisateur; unNouveauPortefeuille.utilisateur = utilisateur; utilisateur.planning = unNouveauPlanning; utilisateur.porteFeuille = unNouveauPortefeuille; session.SaveOrUpdate(unNouveauPlanning); session.SaveOrUpdate(unNouveauPortefeuille); } // Sinon si il s'agit d'une modification else { utilisateur.planning.libellePlanning = libellePlanning; session.SaveOrUpdate(utilisateur.planning); utilisateur.porteFeuille.libellePortefeuille = libellePortefeuille; session.SaveOrUpdate(utilisateur.porteFeuille); } } session.SaveOrUpdate(utilisateur); transaction.Commit(); session.Dispose(); } try { // Une fois que tout fonctionne on envoie le MDP au mail du nouvel utilisateur MailMessage mail = new MailMessage(); mail.Subject = "Nouvel accès à GEPEV!"; mail.Body = "Bienvenue " + utilisateur.nomUtilisateur + " " + utilisateur.prenomUtilisateur + "! Votre mot de passe est: " + motdepasse; mail.From = new MailAddress("*****@*****.**"); mail.To.Add(utilisateur.mailUtilisateur); SmtpClient client = new SmtpClient(); client.Host = "localhost"; client.Send(mail); } catch (Exception ex) { MessageBox.Show("Erreur" + ex.Message); } }
private void AjouterUtilisateur(TypeUtilisateur unTypeUtilisateur, string loginUtilisateur, string nomUtilisateur, string prenomUtilisateur, string mailUtilisateur, string telUtilisateur, string adresseUtilisateur, string villeUtilisateur, string cpUtilisateur, string libellePortefeuille, string libellePlanning, bool changePassword) { sessionFactory = new Configuration().Configure().BuildSessionFactory(); ISession session = sessionFactory.OpenSession(); string motdepasse = ""; string erreur = ""; // try // { // si il s'agit d'une modification if (utilisateur.numUtilisateur != unNouvelUtilisateur.numUtilisateur) { using (ITransaction transaction = session.BeginTransaction()) { unNouvelUtilisateur = utilisateur; //S'il s'agit d'une modification en commercial if (unTypeUtilisateur.codeTypeUtilisateur == 3) { //si l'utilisateur n'etait pas un commercial avant if (unNouvelUtilisateur.typeUtilisateur.codeTypeUtilisateur != 3) { Planning unNouveauPlanning = new Planning(); unNouveauPlanning.libellePlanning = libellePlanning; unNouveauPlanning.utilisateur = unNouvelUtilisateur; session.SaveOrUpdate(unNouveauPlanning); PorteFeuille unNouveauPortefeuille = new PorteFeuille(); unNouveauPortefeuille.libellePortefeuille = libellePortefeuille; unNouveauPortefeuille.utilisateur = unNouvelUtilisateur; session.SaveOrUpdate(unNouveauPortefeuille); unNouvelUtilisateur.planning = unNouveauPlanning; unNouvelUtilisateur.porteFeuille = unNouveauPortefeuille; session.SaveOrUpdate(unNouvelUtilisateur); } // sinon si il etait commercial else { Planning unNouveauPlanning = unNouvelUtilisateur.planning; unNouveauPlanning.libellePlanning = libellePlanning; session.SaveOrUpdate(unNouveauPlanning); PorteFeuille unNouveauPortefeuille = unNouvelUtilisateur.porteFeuille; unNouveauPortefeuille.libellePortefeuille = libellePortefeuille; session.SaveOrUpdate(unNouveauPortefeuille); } } else if (unTypeUtilisateur.codeTypeUtilisateur == 3 && libellePortefeuille == "" || libellePlanning == "") { erreur += "\nMerci de rentrer un nom de portefeuille/planning"; } //Après une migration d'un commercial vers un autre type, on supprime son affectation au planning et portefeuille else if (unTypeUtilisateur.codeTypeUtilisateur != 3) { //On supprime l'idUtilisateur dans la table portefeuille et planning PorteFeuille portefeuille = unNouvelUtilisateur.porteFeuille; Planning planning = utilisateur.planning; portefeuille.utilisateur = null; planning.utilisateur = null; session.SaveOrUpdate(portefeuille); session.SaveOrUpdate(planning); //On supprime l'idPortefeuille/idPlanning dans la table Utilsiateur unNouvelUtilisateur.porteFeuille = null; unNouvelUtilisateur.planning = null; } //Une fois tous les tests bons, on peut affecter le type: unNouvelUtilisateur.typeUtilisateur = unTypeUtilisateur; if (changePassword == true) { //-------------------- DEBUT BLOC GENERATION DU MOT DE PASSE DU NOUVEL UTILISATEUR-------------------------- //On génère un mot de passe aléatoire pour le nouvel Utilisateur Random random = new Random(); const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; motdepasse = new string(Enumerable.Repeat(chars, 10).Select(s => s[random.Next(s.Length)]).ToArray()); // on converti la phrase random en md5 InterLogin pourMD5 = new InterLogin(); //on associe le mot de passe unNouvelUtilisateur.passwordUtilisateur = pourMD5.MD5Hash(motdepasse); //-------------------- FIN BLOC GENERATION DU MOT DE PASSE DU NOUVEL UTILISATEUR-------------------------- } session.SaveOrUpdate(unNouvelUtilisateur); transaction.Commit(); session.Dispose(); } } // Sinon si il s'agit d'un ajout else { using (ITransaction transaction = session.BeginTransaction()) { unNouvelUtilisateur.typeUtilisateur = unTypeUtilisateur; if (loginUtilisateur != null) { unNouvelUtilisateur.loginUtilisateur = loginUtilisateur; } else { erreur += "\nMerci d'entrer un login d'utilisateur"; } if (nomUtilisateur != null) { unNouvelUtilisateur.nomUtilisateur = nomUtilisateur; } else { erreur += "\nMerci d'entrer un nom d'utilisateur"; } if (prenomUtilisateur != null) { unNouvelUtilisateur.prenomUtilisateur = prenomUtilisateur; } else { erreur += "\nMerci d'entrer un prénom d'utilisateur"; } if (mailUtilisateur != null) { unNouvelUtilisateur.mailUtilisateur = mailUtilisateur; } else { erreur += "\nMerci d'entrer un mail d'utilisateur"; } if (telUtilisateur != null) { unNouvelUtilisateur.telUtilisateur = telUtilisateur; } else { erreur += "\nMerci d'entrer un numéro téléphone d'utilisateur"; } if (adresseUtilisateur != null) { unNouvelUtilisateur.adresseUtilisateur = adresseUtilisateur; } else { erreur += "\nMerci d'entrer une adresse d'utilisateur"; } if (villeUtilisateur != null) { unNouvelUtilisateur.villeUtilisateur = villeUtilisateur; } else { erreur += "\nMerci d'entrer une ville d'utilisateur"; } if (cpUtilisateur != null) { unNouvelUtilisateur.cpUtilisateur = cpUtilisateur; } else { erreur += "\nMerci d'entrer un code postal d'utilisateur"; } //-------------------- DEBUT BLOC GENERATION DU MOT DE PASSE DU NOUVEL UTILISATEUR-------------------------- //On génère un mot de passe aléatoire pour le nouvel Utilisateur Random random = new Random(); const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; motdepasse = new string(Enumerable.Repeat(chars, 10).Select(s => s[random.Next(s.Length)]).ToArray()); // on converti la phrase random en md5 InterLogin pourMD5 = new InterLogin(); //on associe le mot de passe unNouvelUtilisateur.passwordUtilisateur = pourMD5.MD5Hash(motdepasse); //-------------------- FIN BLOC GENERATION DU MOT DE PASSE DU NOUVEL UTILISATEUR-------------------------- //S'il s'agit d'un commercial: if (unNouvelUtilisateur.typeUtilisateur.codeTypeUtilisateur == 3 && (libellePlanning != null || libellePortefeuille != null)) { unNouveauPlanning.libellePlanning = libellePlanning; unNouveauPortefeuille.libellePortefeuille = libellePortefeuille; unNouveauPlanning.utilisateur = unNouvelUtilisateur; unNouveauPortefeuille.utilisateur = unNouvelUtilisateur; unNouvelUtilisateur.planning = unNouveauPlanning; unNouvelUtilisateur.porteFeuille = unNouveauPortefeuille; session.SaveOrUpdate(unNouvelUtilisateur); session.SaveOrUpdate(unNouveauPlanning); session.SaveOrUpdate(unNouveauPortefeuille); } else { //On sauvegarde le nouvel utilisateur session.SaveOrUpdate(unNouvelUtilisateur); } transaction.Commit(); session.Dispose(); } } // } // catch (Exception ex) // { // MessageBox.Show(ex.Message+erreur); // } try{ // Une fois que tout fonctionne on envoie le MDP au mail du nouvel utilisateur MailMessage mail = new MailMessage(); mail.Subject = "Nouvel accès à GEPEV!"; mail.Body = "Bienvenue " + unNouvelUtilisateur.nomUtilisateur + " " + unNouvelUtilisateur.prenomUtilisateur + "! Votre mot de passe est: " + motdepasse; mail.From = new MailAddress("*****@*****.**"); mail.To.Add(unNouvelUtilisateur.mailUtilisateur); SmtpClient client = new SmtpClient(); client.Host = "localhost"; client.Send(mail); }catch (Exception ex) { MessageBox.Show("Erreur" + ex.Message); } }