示例#1
0
        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));
        }
示例#2
0
        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.");
        }
示例#3
0
        // 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
            }
        }
示例#4
0
        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)));
        }
示例#5
0
        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));
        }