diff --git a/backend/src/Contact.Infrastructure/Persistence/Helper/DapperHelper.cs b/backend/src/Contact.Infrastructure/Persistence/Helper/DapperHelper.cs index ef82fca..103726b 100644 --- a/backend/src/Contact.Infrastructure/Persistence/Helper/DapperHelper.cs +++ b/backend/src/Contact.Infrastructure/Persistence/Helper/DapperHelper.cs @@ -17,7 +17,7 @@ public DapperHelper(IOptions myConfigValue, ILogger l _logger = logger; } - public IDbConnection GetConnection() + public SqlConnection GetConnection() { _logger.LogInformation("Connection String: {connectionString}", myConfig.ConnectionStrings.DefaultConnection); return new SqlConnection(myConfig.ConnectionStrings.DefaultConnection); @@ -30,47 +30,47 @@ public void Dispose() public async Task Execute(string sp, object parms, CommandType commandType = CommandType.Text, IDbTransaction? transaction = null) { - var db = transaction?.Connection ?? GetConnection(); + var db = transaction?.Connection as SqlConnection ?? GetConnection(); try { if (db.State == ConnectionState.Closed) - db.Open(); + await db.OpenAsync(); var resultObj = await db.ExecuteAsync(sp, parms, commandType: commandType, transaction: transaction); if (transaction == null) - db.Close(); + await db.CloseAsync(); return resultObj; } catch (Exception exception) { if (transaction == null && db?.State == ConnectionState.Open) - db.Close(); + await db.CloseAsync(); _logger.LogInformation("SQL DB error exception: {error}", exception.Message); - throw exception; + throw; } } - public async Task Get(string sp, Object parms, CommandType commandType = CommandType.Text, IDbTransaction transaction = null) + public async Task Get(string sp, Object parms, CommandType commandType = CommandType.Text, IDbTransaction? transaction = null) { T result; - var db = transaction?.Connection ?? GetConnection(); + var db = transaction?.Connection as SqlConnection ?? GetConnection(); try { if (db.State == ConnectionState.Closed) - db.Open(); + await db.OpenAsync(); var resultObj = await db.QueryFirstOrDefaultAsync(sp, parms, commandType: commandType, transaction: transaction); result = resultObj; if (transaction == null) - db.Close(); + await db.CloseAsync(); return result; } catch (Exception exception) { if (transaction == null && db?.State == ConnectionState.Open) - db.Close(); + await db.CloseAsync(); _logger.LogInformation("SQL DB error exception: {error}", exception.Message); - throw exception; + throw; } } @@ -78,67 +78,67 @@ public async Task> GetAll(string sp, Object parms, CommandType { try { - using (IDbConnection db = GetConnection()) + using (var db = GetConnection()) { + await db.OpenAsync(); var result = await db.QueryAsync(sp, parms, commandType: commandType); + await db.CloseAsync(); return result.ToList(); } } catch (Exception ex) { _logger.LogInformation("SQL DB error exception: {error}", ex.Message); - - throw ex; + throw; } } - public async Task Insert(string sp, Object parms, CommandType commandType = CommandType.Text, IDbTransaction transaction = null) + public async Task Insert(string sp, Object parms, CommandType commandType = CommandType.Text, IDbTransaction? transaction = null) { T result; - var db = transaction?.Connection ?? GetConnection(); + var db = transaction?.Connection as SqlConnection ?? GetConnection(); try { if (db.State == ConnectionState.Closed) - db.Open(); + await db.OpenAsync(); var resultObj = await db.QueryFirstOrDefaultAsync(sp, parms, commandType: commandType, transaction: transaction); result = resultObj; if (transaction == null) - db.Close(); + await db.CloseAsync(); return result; } catch (Exception exception) { if (transaction == null && db?.State == ConnectionState.Open) - db.Close(); + await db.CloseAsync(); _logger.LogInformation("SQL DB error exception: {error}", exception.Message); - throw exception; + throw; } } public async Task Update(string sp, object parms, CommandType commandType = CommandType.Text, IDbTransaction? transaction = null) { T result; - var db = transaction?.Connection ?? GetConnection(); + var db = transaction?.Connection as SqlConnection ?? GetConnection(); try { if (db.State == ConnectionState.Closed) - db.Open(); + await db.OpenAsync(); var resultObj = await db.QueryFirstOrDefaultAsync(sp, parms, commandType: commandType, transaction: transaction); result = resultObj; if (transaction == null) - db.Close(); + await db.CloseAsync(); return result; } catch (Exception ex) { if (transaction == null && db?.State == ConnectionState.Open) - db.Close(); + await db.CloseAsync(); _logger.LogInformation("SQL DB error exception: {error}", ex.Message); - throw ex; + throw; } - } } -} +} \ No newline at end of file diff --git a/backend/src/Contact.Infrastructure/Persistence/Helper/IDapperHelper.cs b/backend/src/Contact.Infrastructure/Persistence/Helper/IDapperHelper.cs index 53cc77d..f1173db 100644 --- a/backend/src/Contact.Infrastructure/Persistence/Helper/IDapperHelper.cs +++ b/backend/src/Contact.Infrastructure/Persistence/Helper/IDapperHelper.cs @@ -1,10 +1,11 @@ using System.Data; +using Microsoft.Data.SqlClient; namespace Contact.Infrastructure.Persistence.Helper; public interface IDapperHelper : IDisposable { - IDbConnection GetConnection(); + SqlConnection GetConnection(); Task Get(string sp, Object parms, CommandType commandType = CommandType.Text, IDbTransaction? transaction = null); Task> GetAll(string sp, Object parms, CommandType commandType = CommandType.Text); Task Execute(string sp, Object parms, CommandType commandType = CommandType.Text, IDbTransaction? transaction = null);