public async Task <ActionResult> SupprimerEven(Evenements evenement) { var idUSer = GetIdUtilisateurConnecte(); //Controle que l'évènement appartiennent à la personne qui le supprime if (Db.Evenements.Count(x => x.Id == evenement.Id && x.CreateurId == idUSer) > 0) { //préparation du mail var mail = Db.Mails.First(x => x.NomUnique == ContexteStatic.EnvoiDesactivationEvenement); var corpsMessage = StringUtils.CopyString(mail.Corps); corpsMessage = corpsMessage.Replace("%NOMEVEN%", evenement.Titre); //suppression des liens évènements et utilisateur var listeEvenUser = Db.EvenementsUtilisateurs.Where(x => x.EvenementsId == evenement.Id).Include(x => x.Utilisateurs).ToList(); foreach (var evenementsUtilisateurs in listeEvenUser) { await MailUtils.SendMail(evenementsUtilisateurs.Utilisateurs.Email, mail.Objet, corpsMessage); Db.EvenementsUtilisateurs.Remove(evenementsUtilisateurs); } var ev = Db.Evenements.Find(evenement.Id); //supression de l'évènement Db.Evenements.Remove(ev); Db.SaveChanges(); return(RedirectToAction("MesEvenements")); } return(View(evenement)); }
private static void SendDataDrivenEmail(MySqlConnection con) { Dictionary <string, string> dictFlareSystemConfigurationEntries = SystemConfigurationEntry.GetDictionary(con); if (!dictFlareSystemConfigurationEntries.ContainsKey(SystemConfigurationEntryKeys.SMTPServerAddress)) { throw new Exception(@"Flare system configuration error: No SMTP server address is specified"); } if (!dictFlareSystemConfigurationEntries.ContainsKey(SystemConfigurationEntryKeys.SMTPServerUserName)) { throw new Exception(@"Flare system configuration error: No SMTP server user name is specified"); } if (!dictFlareSystemConfigurationEntries.ContainsKey(SystemConfigurationEntryKeys.SMTPServerPassword)) { throw new Exception(@"Flare system configuration error: No SMTP server password is specified"); } string strSMTPServerAddress = dictFlareSystemConfigurationEntries[SystemConfigurationEntryKeys.SMTPServerAddress]; string strSMTPServerUserName = dictFlareSystemConfigurationEntries[SystemConfigurationEntryKeys.SMTPServerUserName]; string strSMTPServerPassword = dictFlareSystemConfigurationEntries[SystemConfigurationEntryKeys.SMTPServerPassword]; const string strFrom = @"*****@*****.**"; const string strTo = @"*****@*****.**"; const string strSubject = @"Data-driven e-mail test"; string strBody = string.Format(@"Hello Tom; It is now {0} Universal Time.", MySqlUtils.DateTimeToString(DateTime.UtcNow)); Console.WriteLine(@"About to send data-driven e-mail to {0}...", strTo); MailUtils.SendMail(strSMTPServerAddress, strSMTPServerUserName, strSMTPServerPassword, strFrom, strTo, null, null, strSubject, strBody); Console.WriteLine(@"E-mail sent."); }
// Send an e-mail to each of the target's account's contacts. private void SendFailureNotificationEmails(Target target, TargetLogRecord tlr) { if (!m_dictSystemConfigurationEntries.ContainsKey(SystemConfigurationEntryKeys.SMTPServerAddress)) { throw new Exception(@"Flare system configuration error: No SMTP server address is specified"); } if (!m_dictSystemConfigurationEntries.ContainsKey(SystemConfigurationEntryKeys.SMTPServerUserName)) { throw new Exception(@"Flare system configuration error: No SMTP server user name is specified"); } if (!m_dictSystemConfigurationEntries.ContainsKey(SystemConfigurationEntryKeys.SMTPServerPassword)) { throw new Exception(@"Flare system configuration error: No SMTP server password is specified"); } string strSMTPServerAddress = m_dictSystemConfigurationEntries[SystemConfigurationEntryKeys.SMTPServerAddress]; string strSMTPServerUserName = m_dictSystemConfigurationEntries[SystemConfigurationEntryKeys.SMTPServerUserName]; string strSMTPServerPassword = m_dictSystemConfigurationEntries[SystemConfigurationEntryKeys.SMTPServerPassword]; const string strFrom = @"Flare Server Monitoring"; const string strSubject = @"Server monitoring failure notification"; foreach (Contact contact in m_lstAllContacts) { if (contact.AccountID != target.AccountID || !contact.Enabled) // We could filter out disabled contacts at the SQL level { continue; } string strBody = string.Format(@"Hello {0} {1}; Your server '{2}' was unreachable at {3} Universal Time.", contact.FirstName, contact.LastName, target.Name, MySqlUtils.DateTimeToString(tlr.TimeStamp)); #if DO_NOT_SEND_EMAILS LogToConsole(@"**** Simulating the sending of e-mail ****"); LogToConsole(string.Format(@"SMTP Server Address : {0}", strSMTPServerAddress)); LogToConsole(string.Format(@"SMTP Server User Name : {0}", strSMTPServerUserName)); LogToConsole(string.Format(@"SMTP Server Password : {0}", strSMTPServerPassword)); LogToConsole(string.Format(@"From : {0}", strFrom)); LogToConsole(string.Format(@"To : {0}", contact.EmailAddress)); LogToConsole(string.Format(@"Subject : {0}", strSubject)); LogToConsole(string.Format(@"Body : {0}", strBody)); LogToConsole(@"**** End of e-mail ****"); #else MailUtils.SendMail(strSMTPServerAddress, strSMTPServerUserName, strSMTPServerPassword, strFrom, contact.EmailAddress, null, null, strSubject, strBody); #endif } }
public async Task <ActionResult> Create(EvenementViewModel evenementCreer) { if (ModelState.IsValid) { //controle de la dateA if (evenementCreer.EvenementsCre.Date < DateUtils.GetAujourdhui()) { ModelState.AddModelError("EvenementsCre.Date", "La date doit être supérieur à la date du jour"); } if (evenementCreer.EvenementsCre.DemiJournee != DemiJourneeEnum.APRESMIDI && evenementCreer.EvenementsCre.DemiJournee != DemiJourneeEnum.MATIN) { ModelState.AddModelError("EvenementsCre.DemiJournee", "Il est nécéssaire de préciser la demi journée"); } //controle de la dateB if (evenementCreer.EvenementsCre.DateB != null) { if (evenementCreer.EvenementsCre.DemiJourneeB != DemiJourneeEnum.APRESMIDI && evenementCreer.EvenementsCre.DemiJourneeB != DemiJourneeEnum.MATIN) { ModelState.AddModelError("EvenementsCre.DemiJourneeB", "Il est nécéssaire de préciser la demi journée"); } if (evenementCreer.EvenementsCre.DateB < DateUtils.GetAujourdhui()) { ModelState.AddModelError("EvenementsCre.DateB", "La date doit être supérieur à la date du jour"); } if (evenementCreer.EvenementsCre.DateB == evenementCreer.EvenementsCre.Date && evenementCreer.EvenementsCre.DemiJourneeB == evenementCreer.EvenementsCre.DemiJournee) { ModelState.AddModelError("EvenementsCre.DateB", "cette date est identique à la première date"); } } //controle de la dateC if (evenementCreer.EvenementsCre.DateC != null) { if (evenementCreer.EvenementsCre.DemiJourneeC != DemiJourneeEnum.APRESMIDI && evenementCreer.EvenementsCre.DemiJourneeC != DemiJourneeEnum.MATIN) { ModelState.AddModelError("EvenementsCre.DemiJourneeC", "Il est nécéssaire de préciser la demi journée"); } if (evenementCreer.EvenementsCre.DateC < DateUtils.GetAujourdhui()) { ModelState.AddModelError("EvenementsCre.DateC", "La date doit être supérieur à la date du jour"); } if ((evenementCreer.EvenementsCre.DateC == evenementCreer.EvenementsCre.Date && evenementCreer.EvenementsCre.DemiJourneeC == evenementCreer.EvenementsCre.DemiJournee) || (evenementCreer.EvenementsCre.DateB != null && evenementCreer.EvenementsCre.DemiJourneeB != null && evenementCreer.EvenementsCre.DateC == evenementCreer.EvenementsCre.DateB && evenementCreer.EvenementsCre.DemiJourneeC == evenementCreer.EvenementsCre.DemiJourneeB)) { ModelState.AddModelError("EvenementsCre.DateC", "cette date est identique à une des dates ci dessus"); } } //control de la date de verrouillage if (evenementCreer.EvenementsCre.DateVerrou != null) { if (evenementCreer.EvenementsCre.DateVerrou <= DateUtils.GetAujourdhui() || evenementCreer.EvenementsCre.DateVerrou > evenementCreer.EvenementsCre.Date || (evenementCreer.EvenementsCre.DateB != null && evenementCreer.EvenementsCre.DateVerrou > evenementCreer.EvenementsCre.DateB) || (evenementCreer.EvenementsCre.DateC != null && evenementCreer.EvenementsCre.DateVerrou > evenementCreer.EvenementsCre.DateC)) { ModelState.AddModelError("EvenementsCre.DateVerrou", "La date limite est incorrecte"); } } //recup des utilisateurs / poles sélectionnés var selectedIdsPole = Request.Form.GetValues("PolesIdChecked"); var selectedIdsUser = Request.Form.GetValues("UtilisateursIdChecked"); //control de la sélection du personnel if (!StringUtils.CheckStringArrayContainsInt(selectedIdsPole) && !StringUtils.CheckStringArrayContainsInt(selectedIdsUser)) { ModelState.AddModelError("selectionError", "Aucune personne de sélectionné"); } if (ModelState.IsValid) { var selectedUserToSend = Request.Form["radioSelect"] == "0"; //si la date de verrouillage est null c'est que c'est la meme que la date de l'évènement (la plus grande des trois possibles) evenementCreer.EvenementsCre.DateVerrou = (evenementCreer.EvenementsCre.DateVerrou.HasValue) ? evenementCreer.EvenementsCre.DateVerrou : DateUtils.GetPlusGrandeDate(evenementCreer.EvenementsCre.Date, evenementCreer.EvenementsCre.DateB, evenementCreer.EvenementsCre.DateC); //récup de l'évènement var even = evenementCreer.EvenementsCre; even.CreateurId = GetIdUtilisateurConnecte(); Db.Evenements.Add(even); //récup des utilisateurs à inviter List <Utilisateurs> listeUser; if (selectedUserToSend) { //récup de la lsite des utilisateurs sélectionné var listeInt = new List <int>(); foreach (var value in selectedIdsUser) { int i; if (int.TryParse(value, out i)) { listeInt.Add(i); } } listeUser = Db.Utilisateurs.Where( x => listeInt.Contains(x.Id)).ToList(); } else { //récup de la lsite des utilisateurs sélectionné par poles var listeInt = new List <int>(); foreach (var value in selectedIdsPole) { int i; if (int.TryParse(value, out i)) { listeInt.Add(i); } } listeUser = Db.Utilisateurs.Where(x => listeInt.Contains(x.PolesId)).ToList(); } //si l'utilisateur qui le crée n'est pas dedans, il est rajouté automatiquement if (listeUser.Count(x => x.Id == GetIdUtilisateurConnecte()) == 0) { listeUser.Add(Db.Utilisateurs.Find(GetIdUtilisateurConnecte())); } //pour chaque invité, envoi d'un mail var mail = Db.Mails.First(x => x.NomUnique == ContexteStatic.EnvoiInvitEvenement); var corpsMessage = StringUtils.CopyString(mail.Corps); foreach (var user in listeUser) { var evenUser = new EvenementsUtilisateurs() { Utilisateurs = user, Evenements = even, Commentaire = null, IsPresent = null }; Db.EvenementsUtilisateurs.Add(evenUser); var id = GetIdUtilisateurConnecte(); var userCre = Db.Utilisateurs.Find(id); corpsMessage = corpsMessage.Replace("%TITRE_EVEN%", even.Titre); corpsMessage = corpsMessage.Replace("%ADRESSE%", $"{Request.Url.Scheme}://{Request.Url.Authority}{Url.Content("~")}" + "Evenements/MesEvenements"); corpsMessage = corpsMessage.Replace("%APPLI%", ContexteApplication.Application.NomAppli); corpsMessage = corpsMessage.Replace("%NOM_CREATEUR%", userCre.Grades.Diminutif + " " + userCre.Nom + " " + userCre.Prenom); corpsMessage = corpsMessage.Replace("%DATELIM%", DateUtils.GetDateFormat((even.DateVerrou.HasValue)? even.DateVerrou.Value:even.Date, "yyyy-MM-dd")); //envoi du mail await MailUtils.SendMail(user.Email, mail.Objet, corpsMessage); } Db.SaveChanges(); return(RedirectToAction("MesEvenements", "Evenements")); } } return(View(GenerateViewModelCreate(evenementCreer))); }
public async Task <ActionResult> Create(Utilisateurs utilisateurs) { if (Db.Utilisateurs.Count(x => x.Email == utilisateurs.Email && x.Etat == EtatEnum.ACTIF) > 0) { ModelState.AddModelError("Email", "Cette adresse est déjà présente!"); } if (ModelState.IsValid) { Utilisateurs user; var isAjout = false; //si l'adresse existe en base c'est que c'est un utilisateur périmé, donc on le réactive if (Db.Utilisateurs.Count(x => x.Email == utilisateurs.Email) > 0) { user = Db.Utilisateurs.First(x => x.Email == utilisateurs.Email); } else { user = Db.Utilisateurs.Create(); isAjout = true; } var motDePasse = CryptUtils.GeneratePassword(9, true, true, true); user.MotDePasse = CryptUtils.GenerateHashPassword(motDePasse); user.Email = utilisateurs.Email.ToLower(); user.Nom = StringUtils.FirstLetterUpper(utilisateurs.Nom.ToLower()); user.Prenom = StringUtils.FirstLetterUpper(utilisateurs.Prenom.ToLower()); user.Nid = utilisateurs.Nid; user.Pnia = utilisateurs.Pnia; user.Role = utilisateurs.Role; user.GradesId = utilisateurs.GradesId; user.PolesId = utilisateurs.PolesId; user.Etat = EtatEnum.ACTIF; if (isAjout) { Db.Entry(user).State = EntityState.Added; Db.Utilisateurs.Add(user); } else { Db.Entry(user).State = EntityState.Modified; } Db.SaveChanges(); //envoi du mail var mail = Db.Mails.First(x => x.NomUnique == ContexteStatic.EnvoiCreationCompte); var corpsMessage = StringUtils.CopyString(mail.Corps); corpsMessage = corpsMessage.Replace("%NOMAPPLI%", ContexteApplication.Application.NomAppli); corpsMessage = corpsMessage.Replace("%LOGIN%", user.Email); corpsMessage = corpsMessage.Replace("%MOTDEPASSE%", motDePasse); await MailUtils.SendMail(user.Email, mail.Objet, corpsMessage); return(RedirectToAction("Index")); } ViewBag.GradesId = new SelectList(Db.Grades.Where(x => x.Etat == EtatEnum.ACTIF && x.ArmesId == utilisateurs.ArmesId).ToList(), "Id", "Nom"); ViewBag.ArmesId = new SelectList(Db.Armes.Where(x => x.Etat == EtatEnum.ACTIF).ToList(), "Id", "Nom"); ViewBag.PolesId = new SelectList(Db.Poles.Where(x => x.Etat == EtatEnum.ACTIF).ToList(), "Id", "Nom"); return(View(utilisateurs)); }