PI_Assync_SCDE/Infrastructure/AccessRepository.cs
Adriano Serighelli 9a91cc456f Refatora ProcessarMedicoesUseCase e ajusta dependências
Refatora o uso de HttpClient, removendo controle explícito de concorrência com SemaphoreSlim e RateLimiter, e adiciona suporte a certificados SSL com o método CreateHttpClient. Simplifica assinaturas de métodos e inicialização de dependências.

Ajusta a lógica de comparação de medições para maior precisão com Math.Round. Atualiza consultas SQL em AccessRepository e PostgresRepository para melhorar legibilidade e remover filtros específicos.

Altera o intervalo de datas no Program.cs e remove configurações de proxy e validação de certificado no HttpClient. Remove código legado e comentários desnecessários, melhorando a organização geral do código.
2025-10-28 13:42:58 -03:00

43 lines
2.1 KiB
C#

using System.Data.OleDb;
using Domain;
namespace Infrastructure
{
public class AccessRepository : IAccessRepository
{
private readonly string _connectionString;
public AccessRepository(string connectionString)
{
_connectionString = connectionString;
}
public async Task<IEnumerable<Perfil>> ObterPerfisAsync(CancellationToken ct)
{
var perfis = new List<Perfil>();
using var connection = new OleDbConnection(_connectionString);
await connection.OpenAsync(ct);
string sql = $"SELECT Cod_5min, Codigo_SCDE, Data_de_Migracao FROM Dados_cadastrais WHERE LEN(Codigo_SCDE) > 5 AND Unidade_gerenciada ORDER BY cod_smart_unidade";
//string sql = "SELECT Cod_5min, Codigo_SCDE, Data_de_Migracao FROM Dados_cadastrais WHERE LEN(Codigo_SCDE) > 5 and (Cliente = 'RMC ALIMENTOS' OR Cliente = 'FERREIRA SUPERMERCADO' OR Cliente = 'VANGUARDA ALIMENTOS') AND Unidade_gerenciada ORDER BY PerfilCCEE";
//string sql = "SELECT Cod_5min, Codigo_SCDE, Data_de_Migracao FROM Dados_cadastrais WHERE LEN(Codigo_SCDE) > 5 and Cliente = 'ABEVÊ' and Unidade = 'ABV LOJA 29 - COXIM' AND Unidade_gerenciada ORDER BY PerfilCCEE";
//string sql = "SELECT Cod_5min, Codigo_SCDE, Data_de_Migracao FROM Dados_cadastrais WHERE LEN(Codigo_SCDE) > 5 and Cliente = 'RMC ALIMENTOS' AND Unidade_gerenciada ORDER BY PerfilCCEE";
//string sql = "SELECT Cod_5min, Codigo_SCDE, Data_de_Migracao FROM Dados_cadastrais WHERE LEN(Codigo_SCDE) > 5 and Codigo_SCDE = 'MTTMAUENTR101'";
using var command = new OleDbCommand(sql, connection);
using var reader = await command.ExecuteReaderAsync(ct);
while (await reader.ReadAsync(ct))
{
var cod5min = reader.IsDBNull(0) ? null : reader.GetString(0);
var codigoSCDE = reader.IsDBNull(1) ? null : reader.GetString(1);
var dataMigracao = reader.IsDBNull(2) ? (DateTime?)null : reader.GetDateTime(2);
perfis.Add(new Perfil(cod5min, codigoSCDE, dataMigracao));
}
return perfis;
}
}
}