Exemplo n.º 1
0
        public async Task <bool> EnviarEmailNotificaion(IEmailSender emailSender, SistemasLegalesContext db)
        {
            try
            {
                var semaforo = ObtenerSemaforo();
                if (semaforo == 2)
                {
                    if (!NotificacionEnviada)
                    {
                        var requisito = await db.Requisito
                                        .Include(c => c.Documento).ThenInclude(c => c.RequisitoLegal.OrganismoControl)
                                        .Include(c => c.Ciudad)
                                        .Include(c => c.Proceso)
                                        .Include(c => c.ActorDuennoProceso)
                                        .Include(c => c.ActorResponsableGestSeg)
                                        .Include(c => c.ActorCustodioDocumento)
                                        .Include(c => c.Status)
                                        .FirstOrDefaultAsync(c => c.IdRequisito == IdRequisito);

                        var listadoEmails = new List <string>()
                        {
                            ActorDuennoProceso.Email,
                            ActorResponsableGestSeg.Email,
                            ActorCustodioDocumento.Email
                        };

                        if (!String.IsNullOrEmpty(EmailNotificacion1))
                        {
                            listadoEmails.Add(EmailNotificacion1);
                        }

                        if (!String.IsNullOrEmpty(EmailNotificacion2))
                        {
                            listadoEmails.Add(EmailNotificacion2);
                        }

                        await emailSender.SendEmailAsync(listadoEmails, "Notificación de caducidad de requisito.",
                                                         $@"Se le informa que está a punto de caducar un requisito en la aplicación Sistemas Legales con los datos siguientes: {System.Environment.NewLine}{System.Environment.NewLine}
                            Organismo de control: {Documento.RequisitoLegal.OrganismoControl.Nombre}, {System.Environment.NewLine}{System.Environment.NewLine}
                            Requisito legal: {Documento.RequisitoLegal.Nombre}, {System.Environment.NewLine}{System.Environment.NewLine}
                            Documento: {Documento.Nombre}, {System.Environment.NewLine}{System.Environment.NewLine}
                            Ciudad: {Ciudad.Nombre}, {System.Environment.NewLine}{System.Environment.NewLine}
                            Proceso: {Proceso.Nombre}, {System.Environment.NewLine}{System.Environment.NewLine}
                            Fecha de cumplimiento: {FechaCumplimiento.ToString("dd/MM/yyyy")}, {System.Environment.NewLine}{System.Environment.NewLine},
                            Fecha de caducidad: {FechaCaducidad.Value.ToString("dd/MM/yyyy")}, {System.Environment.NewLine}{System.Environment.NewLine},
                            Status: {Status.Nombre}, {System.Environment.NewLine}{System.Environment.NewLine},
                            Observaciones: {Observaciones}, {System.Environment.NewLine}{System.Environment.NewLine}
                        ");

                        NotificacionEnviada = true;
                        await db.SaveChangesAsync();

                        return(true);
                    }
                }
            }
            catch (Exception)
            { }
            return(false);
        }
Exemplo n.º 2
0
        public async Task <bool> EnviarEmailNotificaion(UserManager <ApplicationUser> userManager, IEmailSender emailSender, SistemasLegalesContext db)
        {
            try
            {
                var semaforo = ObtenerSemaforo();
                if (semaforo == 2)
                {
                    if (!NotificacionEnviada)
                    {
                        var requisito = await db.Requisito
                                        .Include(c => c.Documento).ThenInclude(c => c.RequisitoLegal.OrganismoControl)
                                        .Include(c => c.Ciudad)
                                        .Include(c => c.Proceso)
                                        .Include(c => c.ActorDuennoProceso)
                                        .Include(c => c.ActorResponsableGestSeg)
                                        .Include(c => c.ActorCustodioDocumento)
                                        .Include(c => c.Status)
                                        .FirstOrDefaultAsync(c => c.IdRequisito == IdRequisito);

                        var listadoEmails = new List <string>()
                        {
                            ActorDuennoProceso.Email,
                            ActorResponsableGestSeg.Email,
                            ActorCustodioDocumento.Email
                        };

                        if (!String.IsNullOrEmpty(EmailNotificacion1))
                        {
                            listadoEmails.Add(EmailNotificacion1);
                        }

                        if (!String.IsNullOrEmpty(EmailNotificacion2))
                        {
                            listadoEmails.Add(EmailNotificacion2);
                        }

                        var FechaCumplimiento = requisito.FechaCumplimiento != null?requisito.FechaCumplimiento?.ToString("dd/MM/yyyy") : "No Definido";

                        var FechaCaducidad = requisito.FechaCaducidad != null?requisito.FechaCaducidad?.ToString("dd/MM/yyyy") : "No Definido";

                        listadoEmails = ListadoEmailsDistinct(listadoEmails);
                        emailSender.SendEmailAsync(listadoEmails, "Notificación de caducidad de requisito.", ConformarMensaje("", requisito, TipoMensaje.PORCADUCAR, ""));
                        NotificacionEnviada = true;
                        await db.SaveChangesAsync();

                        return(true);
                    }
                }

                if (semaforo == 3)
                {
                    if (!NotificacionEnviadaUltima)
                    {
                        var requisito = await db.Requisito
                                        .Include(c => c.Documento).ThenInclude(c => c.RequisitoLegal.OrganismoControl)
                                        .Include(c => c.Ciudad)
                                        .Include(c => c.Proceso)
                                        .Include(c => c.ActorDuennoProceso)
                                        .Include(c => c.ActorResponsableGestSeg)
                                        .Include(c => c.ActorCustodioDocumento)
                                        .Include(c => c.Status)
                                        .FirstOrDefaultAsync(c => c.IdRequisito == IdRequisito);

                        var listadoEmails = new List <string>()
                        {
                            ActorDuennoProceso.Email,
                            ActorResponsableGestSeg.Email,
                            ActorCustodioDocumento.Email
                        };

                        if (!String.IsNullOrEmpty(EmailNotificacion1))
                        {
                            listadoEmails.Add(EmailNotificacion1);
                        }

                        if (!String.IsNullOrEmpty(EmailNotificacion2))
                        {
                            listadoEmails.Add(EmailNotificacion2);
                        }


                        //var listaAdministradores = await userManager.GetUsersInRoleAsync(Perfiles.Administrador);

                        //foreach (var item in listaAdministradores)
                        //{
                        //    listadoEmails.Add(item.Email);
                        //}

                        var FechaCumplimiento = requisito.FechaCumplimiento != null?requisito.FechaCumplimiento?.ToString("dd/MM/yyyy") : "No Definido";

                        var FechaCaducidad = requisito.FechaCaducidad != null?requisito.FechaCaducidad?.ToString("dd/MM/yyyy") : "No Definido";

                        listadoEmails = ListadoEmailsDistinct(listadoEmails);
                        emailSender.SendEmailAsync(listadoEmails, "Notificación de caducidad de requisito.", ConformarMensaje("", requisito, TipoMensaje.CADUCAR, ""));

                        NotificacionEnviadaUltima = true;
                        await db.SaveChangesAsync();

                        return(true);
                    }
                }
            }
            catch (Exception)
            { }
            return(false);
        }