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> ObterPerfisAsync(CancellationToken ct) { var perfis = new List(); 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 = '3016021620'"; 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; } } }