using System; using System.Text.Json; using DAL; using DAS; using Shared.DTO; using Shared.DTO.Envios_DGA; using Shared.DTO.VariablesEntorno; using Shared.Helper; namespace BLL.Recuperacion_DGA { public class EnvioDGA { private readonly MedicionDGARepository _dGAMedicionRepository; private readonly RegistrarMedicion _registrarMedicion; private readonly LogEnvioRepository _logEnvioRepository; public EnvioDGA(MedicionDGARepository dGAMedicionRepository, RegistrarMedicion registrarMedicion, LogEnvioRepository logEnvioRepository) { _dGAMedicionRepository = dGAMedicionRepository; _registrarMedicion = registrarMedicion; _logEnvioRepository = logEnvioRepository; } public async Task RegistrarMedicionesAsync() { //try //{ // await _logEnvioRepository.InsertarLogProcesoAsync(new LogProceso // { // FechaEjecucion = DateTime.UtcNow, // NombreProceso = "ENVIO DATOS DGA" // }); // ConsoleLoggerHelper.WriteLineAndLogEventoAsync("INICIO", "Inicio proceso de recuperación DGA", ""); // ConsoleLoggerHelper.WriteLineAndLogInfo("Obteniendo Mediciones Scada", ConsoleColor.Green); // var logsEnviado = new LogMedicionEnvio(); // var pageNumber = 1; // var fechaInicio = DateTime.UtcNow; // var cont = 1; // while (true) // { // var mediciones = await _dGAMedicionRepository.ObtenerMedicionesPorLoteAsync(pageNumber, fechaInicio); // var totalMediciones = await _dGAMedicionRepository.ObtenerTotalMediciones(fechaInicio); // if (mediciones == null || mediciones.Count == 0) // { // break; // } // foreach (var medicion in mediciones) // { // try // { // var fechaEnvio = DateTime.UtcNow; // var body = new MedicionSubterraneaRequest // { // Autenticacion = new Autenticacion // { // Password = medicion.Password ?? "", // RutEmpresa = medicion.Empresa_Informante == "EV" ? CredencialDGA.RutEsval : CredencialDGA.RutAv, // RutUsuario = medicion.RUT ?? "" // }, // MedicionSubterranea = new Medicion // { // Caudal = medicion.CAUDAL ?? "", // FechaMedicion = medicion.FECHA_MEDICION_CAUDAL?.ToString("yyyy-MM-dd") ?? "", // HoraMedicion = medicion.FECHA_MEDICION_CAUDAL?.ToString("HH:mm:ss") ?? "", // NivelFreaticoDelPozo = medicion.NIVEL_FREATICO_DEL_POZO ?? "", // Totalizador = medicion.TOTALIZADOR_CAUDAL ?? "", // } // }; // ConsoleLoggerHelper.WriteLineAndLogInfo($"Enviando medición DGA {cont} - {totalMediciones}", ConsoleColor.Yellow); // var response = await _registrarMedicion.EnviarMedicionAsync(medicion, body, fechaEnvio); // logsEnviado = response; // await _logEnvioRepository.InsertarLogRespuesta(logsEnviado); // if (logsEnviado.ESTADO_ENVIO == "EXITO") // { // await _dGAMedicionRepository.GuardarMedicionesEnviadaAsync(medicion.ID); // } // ConsoleLoggerHelper.WriteLineAndLogInfo($"Estado medición enviada {logsEnviado.ESTADO_ENVIO ?? ""}", ConsoleColor.Yellow); // cont++; // } // catch (Exception ex) // { // ConsoleLoggerHelper.WriteLineAndLogInfo($"[Error]: medicion[{medicion.ID}], mensaje: {ex.Message}"); // } // } // mediciones.Clear(); // pageNumber++; // } // ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN","Fin proceso de recuperación DGA",""); //} //catch (Exception ex) //{ // FileLoggerHelper.LogError($"[Error] {ex.Message}.", ex); // ConsoleLoggerHelper.WriteLineAndLogInfo($"Error al procesar las mediciones.", ConsoleColor.Red); // return false; //} ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); await Task.Delay(5000); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); await Task.Delay(5000); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); await Task.Delay(5000); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); await Task.Delay(5000); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); ConsoleLoggerHelper.WriteLineAndLogEventoAsync("FIN", "Fin proceso de recuperación DGA", ""); return true; } } }