66 lines
2.4 KiB
C#
66 lines
2.4 KiB
C#
using System.Text;
|
|
using System.Text.Json;
|
|
using DAL;
|
|
using Shared.DTO.Envios_DGA;
|
|
using Shared.DTO.VariablesEntorno;
|
|
|
|
namespace DAS
|
|
{
|
|
public class RegistrarMedicion
|
|
{
|
|
private readonly HttpClient _httpClient;
|
|
private readonly LogMedicionScadaRepository _logMedicionScadaRepository;
|
|
|
|
public RegistrarMedicion(HttpClient httpClient, LogMedicionScadaRepository logMedicionScadaRepository)
|
|
{
|
|
_httpClient = httpClient;
|
|
_logMedicionScadaRepository = logMedicionScadaRepository;
|
|
}
|
|
|
|
public async Task<bool> EnviarMedicionAsync(string codigoObra, MedicionSubterraneaRequest request, long idMedicion)
|
|
{
|
|
var timeStamp = DateTime.UtcNow.ToString("yyyy-MM-dd'T'HH:mm:ss-0000");
|
|
|
|
var json = JsonSerializer.Serialize(request);
|
|
var content = new StringContent(json, Encoding.UTF8, "application/json");
|
|
|
|
content.Headers.Add("codigoObra", codigoObra);
|
|
content.Headers.Add("timeStampOrigen", timeStamp);
|
|
|
|
var response = await _httpClient.PostAsync($"{SubterraneaApiUrl.BaseUrl}{SubterraneaApiUrl.EndPoint}SSSSSSSSSSSSSSSSS", 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
|
|
{
|
|
EstadoEnvio = estado,
|
|
JsonEnviado = json,
|
|
JsonRecibido = jsonRecibido,
|
|
Comprobante = comprobante,
|
|
FechaEnvio = DateTime.UtcNow,
|
|
IdMedicionSmartscadaOperacion = idMedicion
|
|
};
|
|
|
|
await _logMedicionScadaRepository.InsertarLogMedicionScadaAsync(logMedicionScada);
|
|
|
|
return true;
|
|
}
|
|
}
|
|
}
|