Files
Asegasa.NET/Servicio Gestion Asegasa/ProcesosConf.cs
2026-04-29 10:14:20 +02:00

55 lines
1.8 KiB
C#

using Servicio_Gestion_Asegasa.Procesos;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Servicio_Gestion_Asegasa
{
public class ProcesosConf
{
public static Configuracion Conf;
public static DateTime? HoraUtcUltimaEjecucionProcesos = null;
private static bool Procesando;
private static DateTime? FechaUltimaEjecucionTareasHorarias;
public static async Task ProcesarAsync()
{
if (!Procesando && (HoraUtcUltimaEjecucionProcesos.HasValue == false || DateTime.UtcNow.Subtract(HoraUtcUltimaEjecucionProcesos.Value).TotalSeconds > Conf.SegundosMinimosEntreProcesos))
{
Procesando = true;
HoraUtcUltimaEjecucionProcesos = DateTime.UtcNow;
try
{
await ProcesosMensajes.EnviaSMSAsync();
if (!FechaUltimaEjecucionTareasHorarias.HasValue || (DateTime.Now.Subtract(FechaUltimaEjecucionTareasHorarias.Value).TotalMinutes > 120 &&
DateTime.Now.Hour > 6 &&
DateTime.Now.Hour < 20 &&
DateTime.Now.DayOfWeek != DayOfWeek.Sunday) )
{
FechaUltimaEjecucionTareasHorarias = DateTime.Now;
ProcesosMensajes.CompruebaSMSNoEnviados();
}
}
catch (Exception ex)
{
Debug.WriteLine(@"Procesar: EXCEPCIÓN: " + ex.Message + " " + ex.StackTrace);
}
finally
{
Procesando = false;
}
}
}
}
}