55 lines
1.7 KiB
C#

using System.Data.OleDb;
using System.Threading.Tasks;
using Compliance.Domain.Models;
namespace Compliance.Infrastructure.Repositories
{
public class ClientRepository(string connectionString) : IClientRepository, IDisposable
{
private readonly string _connectionString = connectionString;
private bool _disposed;
public async Task<Client?> GetClientInformationAsync(string smartCode)
{
using var connection = new OleDbConnection(_connectionString);
await connection.OpenAsync();
var query = @"SELECT * FROM Dados_cadastrais WHERE Cod_Smart_unidade = @smartCode";
using var command = new OleDbCommand(query, connection);
command.Parameters.AddWithValue("@smartCode", smartCode);
using var reader = await command.ExecuteReaderAsync();
if (await reader.ReadAsync())
{
return new Client
{
SmartCode = reader["Cod_Smart_unidade"].ToString()!,
Name = reader["Cliente"].ToString()!,
Management = reader["Gestao"].ToString()!,
Unit = reader["Unidade"].ToString()!,
ConsumerGroup = reader["Grupo"].ToString()!,
Subgroup = reader["Subgrupo"].ToString()!,
SupplyVoltage = reader["Tensao"].ToString()!
};
}
return null;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (!_disposed)
{
_disposed = true;
}
}
}
}