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); }
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); }
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); }