108 lines
5.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|