Files
Asegasa.NET/Servicio Gestion Asegasa/Procesos/ProcesosGestionesVarias.cs
2026-04-28 11:52:16 +02:00

108 lines
5.4 KiB
C#

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 += "<br /><br />Url Restablecimiento de contraseña: <a href=" + (char)34 + sUrlEnlace + (char)34 + ">Pulse aquí</a>";
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);
}
}
}
}