using System.Data; using System.Data.SqlClient; using SDA.DataProvider.Core; namespace SDA.DataProvider.MSSQLWrappers { class MSSQLTransactionWrapper : SDATransactionWrapper { private MSSQLConnectionWrapper connection; public SqlTransaction Transaction; internal MSSQLTransactionWrapper(MSSQLConnectionWrapper connection, SqlTransaction transaction) { this.connection = connection; Transaction = transaction; } public override void Commit() { try { Transaction.Commit(); } catch (SqlException exception) { throw MSSQLExceptionHelper.TranslateSqlException(exception); } } public override void Rollback() { try { Transaction.Rollback(); } catch (SqlException exception) { throw MSSQLExceptionHelper.TranslateSqlException(exception); } } internal override IDbTransaction NativeTransaction => Transaction; public override void Dispose() { Transaction.Dispose(); Transaction = null; } public override SDAConnectionWrapper Connection { get { return connection; } } public override IsolationLevel IsolationLevel { get { return Transaction.IsolationLevel; } } } }