feat:se eliminan modelos innecesarios e implementan los logs de medicion

This commit is contained in:
Leonel Toro 2025-06-26 14:29:07 -04:00
parent 903414e773
commit f519f3329b
78 changed files with 112 additions and 1683 deletions

View file

@ -12,6 +12,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DAL\DAL.csproj" />
<ProjectReference Include="..\SHARED\Shared.csproj" />
</ItemGroup>

View file

@ -1,4 +1,5 @@
using Microsoft.Extensions.Configuration;
using DAL;
using Microsoft.Extensions.Configuration;
using Shared.DTO.Envios_DGA;
using System.Text;
using System.Text.Json;
@ -12,17 +13,19 @@ namespace DAS
private static string? password;
private static string? rutEmpresa;
private static string? rutUsuario;
private readonly LogMedicionScadaRepository _logMedicionScadaRepository;
public RegistrarMedicion(HttpClient httpClient, IConfiguration configuration)
public RegistrarMedicion(HttpClient httpClient, IConfiguration configuration,LogMedicionScadaRepository logMedicionScadaRepository)
{
_httpClient = httpClient;
_configuration = configuration;
rutUsuario = _configuration["Credenciales:rutEmpresa"] ?? "";
rutEmpresa = _configuration["Credenciales:rutUsuario"] ?? "" ?? "";
password = _configuration["Credenciales:password"] ?? "";
_logMedicionScadaRepository = logMedicionScadaRepository;
}
public async Task<bool> EnviarMedicionAsync(string codigoObra, MedicionSubterraneaRequest request)
public async Task<bool> EnviarMedicionAsync(string codigoObra, MedicionSubterraneaRequest request, long idMedicion)
{
request.Autenticacion.Password = password;
@ -42,6 +45,35 @@ namespace DAS
content.Headers.Add("timeStampOrigen", timeStamp);
var response = await _httpClient.PostAsync(url, content);
string jsonRecibido = await response.Content.ReadAsStringAsync();
string estado = response.IsSuccessStatusCode ? "OK" : "ERROR";
string comprobante = string.Empty;
if (response.IsSuccessStatusCode)
{
try
{
using var doc = JsonDocument.Parse(jsonRecibido);
if (doc.RootElement.TryGetProperty("data", out var dataProp) &&
dataProp.TryGetProperty("numeroComprobante", out var comprobanteProp))
{
comprobante = comprobanteProp.GetString();
}
}
catch
{
}
}
var logMedicionScada = new LogMedicionScada();
logMedicionScada.EstadoEnvio = estado;
logMedicionScada.JsonEnviado = json;
logMedicionScada.JsonRecibido = jsonRecibido;
logMedicionScada.Comprobante = comprobante;
logMedicionScada.FechaEnvio = DateTime.UtcNow;
logMedicionScada.IdMedicionSmartscadaOperacion = idMedicion;
await _logMedicionScadaRepository.InsertarLogMedicionScadaAsync(logMedicionScada);
return response.IsSuccessStatusCode;
}