using System.Data; using Dapper; using Microsoft.Data.SqlClient; using Shared.DTO.Envios_DGA; using Shared.DTO.VariablesEntorno; namespace DAL { public class MedicionDGARepository { public async Task> ObtenerMedicionesPorLoteAsync(int pageNumber, DateTime fecha) { var parameters = new DynamicParameters(); parameters.Add("@PageNumber", pageNumber); parameters.Add("@FechaInicio", fecha); await using var connection = new SqlConnection(BdConexion.StringConnection); var resultado = await connection.QueryAsync( "SP_OBTENER_LOTE_DGA_DATOS", parameters, commandType: CommandType.StoredProcedure); return resultado.ToList(); } public async Task GuardarMedicionesEnviadaAsync(int idMedicion) { await using var connection = new SqlConnection(BdConexion.StringConnection); try { var query = @"UPDATE DGA_DATOS SET ENVIADO = 1 WHERE ID = @Id"; await connection.ExecuteAsync(query, new { Id = idMedicion }); return true; } catch (Exception ex) { throw new Exception($"Error al actualizar medición ID {idMedicion}: {ex.Message}"); } } public async Task ObtenerTotalMediciones(DateTime fechaInicio) { try { var parameters = new DynamicParameters(); parameters.Add("@FechaInicio", fechaInicio); using var connection = new SqlConnection(BdConexion.StringConnection); var resultado = await connection.QuerySingleAsync( "SP_OBTENER_TOTAL_MEDICIONES", parameters, commandType: CommandType.StoredProcedure); return resultado; } catch(Exception ex) { throw new Exception($"ERROR {ex.Message}"); } } } }