using bdAsegasa; using bdAsegasa.db; using bdAsegasa.dbcontext; using System; using System.Collections.Generic; using System.IO; using System.Linq; using tsUtilidades; using tsUtilidades.Extensiones; namespace Servicio_Gestion_Asegasa.Procesos { public class ProcesosGestionesVarias { public static async Task GeneraCorreoRestablecimientoContraseñaAsync() { string sProceso = "GeneraCorreoRestablecimientoContraseña"; try { var bd = tscgestionasegasa.NuevoContexto(); ; var idTgag = bd.enumeraciones.First(x => x.Codigo == "TGV.CCAG").idEnumeracion; var idTgsag = bd.enumeraciones.First(x => x.Codigo == "TGV.CCSAG").idEnumeracion; var gess = bd.gestionesvarias.Where(x => x.idCorreo.HasValue == false && (x.idTipo == idTgag || x.idTipo == idTgsag) && x.FechaProcesado.HasValue == false).ToList(); var urlaseg = bd.enumeraciones.First(x => x.Codigo == "CONF.URLWC").ValorAlfabeticoLargo; foreach (var g in gess) { string sDestinatario; string sAsunto; if (g.idTipo == idTgag) { var ag = bd.agentes.First(x => x.idAgente != 0); sDestinatario = ag.Email; sAsunto = "Solicitud de cambio de contraseña al Agente " + ag.Nombre + " (Nº " + ag.Codigo + ")"; } else { var sag = bd.subagentes.First(x => x.idAgente != 0); sDestinatario = sag.Email; sAsunto = "Solicitud de cambio de contraseña al SubAgente " + sag.Nombre + " (Nº " + sag.idAgenteNavigation.Codigo + "-" + sag.Codigo + ")"; } if (Directory.Exists(@"c:\tecnosis.tfs")) { sDestinatario = "sevilla@tecnosis.net"; } if (sDestinatario.EsEmailValido()) { g.Parametros = tsUtilidades.crypt.SHA1("M3Soft." + DateTime.Now.ToBinary().ToString() + g.idGestion.ToString()); string sUrlEnlace = urlaseg + "/nuevaContrasena.aspx?id=" + g.idGestion.ToString() + "&cl=" + g.Parametros; string sCuerpo = "Estimado compañero/a: Adjunto te remitimos el enlace para restablecer la contraseña de acceso a la Web de Asegasa. Si usted no ha realizado dicha solicitud, póngase en contacto con nosotros. Un saludo."; sCuerpo += "

Url Restablecimiento de contraseña: Pulse aquí"; var cta = bd.cuentascorreo.First(x => x.Codigo == "SEG.GENERALES"); g.idCorreo = bdAsegasa.db.correos.GeneraRegistroCorreo(bd, sAsunto, sCuerpo, cta, sDestinatario); bd.SaveChanges(); } else { g.FechaProcesado = DateTime.Now; bd.SaveChanges(); await tsUtilidades.TsNotificacionesClient.RegistrarAsync("En GeneraCorreoRestablecimientoContraseña.", "Rutina: GeneraCorreoRestablecimientoContraseña. " + " El Agente o subagente " + g.Descripción + " no tiene un correo válido.", TsNotificacionesClient.TipoNotificacionEnum.ERROR); } } } catch (Exception ex) { await tsUtilidades.TsNotificacionesClient.RegistrarAsync("En GeneraCorreoRestablecimientoContraseña.", "Rutina: GeneraCorreoRestablecimientoContraseña. " + " " + ex.Message, TsNotificacionesClient.TipoNotificacionEnum.ERROR); } } public static async Task EnviaAlertaCredencialesProximasACaducarAsync() { string sProceso = "EnviaAlertaCredencialesProximasACaducar"; try { var bd = tscgestionasegasa.NuevoContexto(); var ctaspc = bd.cuentascorreo.Where(x => x.FechaAvisoCaducidadCredenciales != null && x.FechaAvisoCaducidadCredenciales < DateTime.Now).ToList(); var dest = bd.enumeraciones.Where(x => x.Codigo == "CONF.EMAILCRCTA").First().ValorAlfabeticoLargo; foreach (var c in ctaspc) { string sAsunto; sAsunto = "Crecenciales de la cuenta de correo " + c.Remitente + " próxima a caducar."; if (Directory.Exists(@"c:\tecnosis.tfs")) { dest = "sevilla@tecnosis.net"; } string sCuerpo = "Atención: Se deben renovar las credenciales de la cuenta " + c.Remitente + " y comunicárselo a Tecnosis para su actualización."; bdAsegasa.db.correos.GeneraRegistroCorreo(bd, sAsunto, sCuerpo, c, dest); bd.SaveChanges(); } } catch (Exception ex) { await tsUtilidades.TsNotificacionesClient.RegistrarAsync("En EnviaAlertaCredencialesProximasACaducar.", "Rutina: GeneraCorreoRestablecimientoContraseña. " + " " + ex.Message, TsNotificacionesClient.TipoNotificacionEnum.ERROR); } } } }