From 43f647d9b7093c750ff566eac048fd6a1a8ce093 Mon Sep 17 00:00:00 2001 From: s459315 Date: Tue, 2 Aug 2022 17:50:09 +0200 Subject: [PATCH] Addition to transaction fix --- .../Internal/DataAccess/SqlDataAccess.cs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/RMDataManagerLibrary/Internal/DataAccess/SqlDataAccess.cs b/RMDataManagerLibrary/Internal/DataAccess/SqlDataAccess.cs index b5f6a10..a86ba6e 100644 --- a/RMDataManagerLibrary/Internal/DataAccess/SqlDataAccess.cs +++ b/RMDataManagerLibrary/Internal/DataAccess/SqlDataAccess.cs @@ -43,8 +43,10 @@ namespace RMDataManagerLibrary.Internal.DataAccess private IDbConnection _connection; private IDbTransaction _transaction; + private bool isClosed = false; public void StartTransaction(string connectionStringName) { + isClosed = false; string connectionString = GetConnectionString(connectionStringName); _connection = new SqlConnection(connectionString); @@ -74,17 +76,32 @@ namespace RMDataManagerLibrary.Internal.DataAccess { _transaction?.Commit(); _connection?.Close(); + isClosed = true; } public void RollBackTransaction() { _transaction?.Rollback(); _connection?.Close(); + isClosed = true; } public void Dispose() { - CommitTransaction(); + if (!isClosed) + { + try + { + CommitTransaction(); + } + catch + { + // TODO - log this issue + } + } + + _transaction = null; + _connection = null; } } }