Esempio 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);
        }
        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);
        }
        public async Task <bool> EnviarEmailNotificaionDias(IEmailSender emailSender, SistemasLegalesContext db)
        {
            try
            {
                var requisito = await db.Requisito.Where(x => x.Finalizado == false && x.Habilitado == true)
                                .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>()
                {
                    ActorResponsableGestSeg.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, ""));
                return(true);
            }
            catch (Exception)
            { }
            return(false);
        }
        public async Task <bool> EnviarEmailNotificaionNoFinalizado(string url, IEmailSender emailSender, SistemasLegalesContext db)
        {
            try
            {
                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);

                if (requisito != null)
                {
                    var listadoEmails = new List <string>();
                    listadoEmails.Add(requisito.ActorResponsableGestSeg.Email);
                    listadoEmails = ListadoEmailsDistinct(listadoEmails);
                    emailSender.SendEmailAsync(listadoEmails, "Notificación de requisito.", ConformarMensaje(url, requisito, TipoMensaje.NOACEPTADO, ""));
                }
                return(true);
            }
            catch (Exception)
            { }
            return(false);
        }
        //public async Task<bool> EnviarEmailNotificaionRequisitoTerminado(UserManager<ApplicationUser> userManager,string url,IEmailSender emailSender, SistemasLegalesContext db)
        //{
        //    try
        //    {
        //        var listaAdministradores=await userManager.GetUsersInRoleAsync(Perfiles.Administrador);

        //        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>();
        //        foreach (var item in listaAdministradores)
        //        {
        //            listadoEmails.Add(item.Email);
        //        }
        //        if (listaAdministradores.Count>0)
        //        {
        //            listadoEmails = ListadoEmailsDistinct(listadoEmails);
        //            emailSender.SendEmailAsync(listadoEmails, "Notificación de requisito terminado.", ConformarMensaje(url, requisito, TipoMensaje.TERMINADO,""));
        //        }
        //    return true;
        //    }
        //    catch (Exception)
        //    { }
        //    return false;
        //}

        public async Task <bool> EnviarEmailNotificaionFinalizadoModificado(string nombreUsuario, UserManager <ApplicationUser> userManager, IEmailSender emailSender, SistemasLegalesContext db)
        {
            try
            {
                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);

                if (requisito != null)
                {
                    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);
                    }
                    listadoEmails = ListadoEmailsDistinct(listadoEmails);
                    emailSender.SendEmailAsync(listadoEmails, "Notificación de requisito finalizado ha sido modificado.", ConformarMensaje(null, requisito, TipoMensaje.FINALIZADOMODIFICADO, nombreUsuario));
                }
                return(true);
            }
            catch (Exception)
            { }
            return(false);
        }
        public async Task <bool> EnviarEmailNotificaionRequisitoCreacion(string url, IEmailSender emailSender, SistemasLegalesContext db)
        {
            try
            {
                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);


                if (requisito != null)
                {
                    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);
                    }
                    listadoEmails = ListadoEmailsDistinct(listadoEmails);
                    emailSender.SendEmailAsync(listadoEmails, "Notificación de creación de un requisito.", ConformarMensaje(url, requisito, TipoMensaje.CREATE, ""));
                }
                return(true);
            }
            catch (Exception)
            { }
            return(false);
        }
Esempio n. 7
0
        public async Task <bool> EnviarEmailNotificaionRequisitoTerminado(UserManager <ApplicationUser> userManager, string url, IEmailSender emailSender, SistemasLegalesContext db)
        {
            try
            {
                var listaAdministradores = await userManager.GetUsersInRoleAsync(Perfiles.Administrador);

                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>();
                foreach (var item in listaAdministradores)
                {
                    listadoEmails.Add(item.Email);
                }
                if (listaAdministradores.Count > 0)
                {
                    await emailSender.SendEmailAsync(listadoEmails, "Notificación de requisito terminado.", ConformarMensaje(url, requisito, TipoMensaje.TERMINADO, ""));
                }
                return(true);
            }
            catch (Exception)
            { }
            return(false);
        }
Esempio n. 8
0
        public async Task <bool> EnviarEmailNotificaionRequisitoCreacionAutomatica(UserManager <ApplicationUser> userManager, IEmailSender emailSender, SistemasLegalesContext db)
        {
            try
            {
                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);


                if (requisito != null)
                {
                    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);
                    }
                    await emailSender.SendEmailAsync(listadoEmails, "Notificación de requisito creado automaticamete.", ConformarMensaje("", requisito, TipoMensaje.AUTOMATICO, ""));
                }
                return(true);
            }
            catch (Exception)
            { }
            return(false);
        }