Exemplo n.º 1
0
        public static void NotificarActualizacionFechasCulto()
        {
            var usuarios = SeguridadComponent.GetUsuariosByOperaciones(new List <string>()
            {
                Operaciones.REUNIONES_FECHAS_NOTIFICACIONES
            });

            var proximas = GetProximasFechas(DateTime.Now, DateTime.Now.AddMonths(2));

            if (proximas.Count == 0)
            {
                return;
            }

            foreach (var item in proximas.Select(m => m.Encargado).Distinct())
            {
                usuarios.Add(item);
            }

            IList <string> emailsTo = usuarios.Select(m => m.Email).Distinct().ToList();


            Dictionary <string, string> mapper = new Dictionary <string, string>();
            StringBuilder builder = new StringBuilder();

            foreach (var item in proximas)
            {
                mapper = new Dictionary <string, string>();
                mapper.Add("{FECHA_ITEM}", item.Fecha.ToString("dd/MM/yyyy"));
                mapper.Add("{ENCARGADO_ITEM}", item.Encargado.FullNameUser);
                mapper.Add("{TEMA_ITEM}", item.Tema);
                builder.Append(EmailTemplateHelper.FillSimpleTemplate(
                                   ConfigurationHelper.DirectorioMailTemplateActualizacionEncargadosCultos_ITEM, mapper));
            }

            mapper = new Dictionary <string, string>();
            mapper.Add("{linkListado}", string.Format("{0}/Reunion/ProximasFechas", ConfigurationHelper.SiteRoot));
            mapper.Add("{items}", builder.ToString());
            string template = EmailTemplateHelper.FillTemplate("Próximas fechas y encargados de cultos",
                                                               ConfigurationHelper.DirectorioMailTemplateActualizacionEncargadosCultos, mapper);

            MailSender.Send(emailsTo, "Próximas fechas y encargados de cultos", template, true);
        }