martes, 16 de diciembre de 2008

Negocio.Core.TransactionHelper.vb

Namespace Negocio

  Public Class TransactionHelper : Implements IDisposable

    Public Sub New(ByVal connection As IDbConnection)
      _Connection = connection
    End Sub

    Public Sub BeginTransaction()
      _Transaction = Dal.DataServer.CreateTransaction(_Connection)
    End Sub

    Public Sub Commit()
      Dal.DataServer.Commit(_Transaction)
    End Sub
    Public Sub RollBack()
      Dal.DataServer.Rollback(_Transaction)
    End Sub

    Private _Connection As IDbConnection
    Public Function Connection() As IDbConnection
      Return _Connection
    End Function

    Private _Transaction As IDbTransaction
    Public Function Transaction() As IDbTransaction
      Return _Transaction
    End Function

    Public ReadOnly Property ConnectionProvider() As Dal.ConnectionProviderDelegate
      Get
        Return AddressOf Connection
      End Get
    End Property

    Public ReadOnly Property TransactionProvider() As Dal.TransactionProviderDelegate
      Get
        Return AddressOf Transaction
      End Get
    End Property

#Region " IDisposable "
    Private _disposedValue As Boolean = False
    Protected Overridable Sub Dispose(ByVal disposing As Boolean)
      If Not Me._disposedValue Then
        If disposing Then

        End If
        Connection.Close()
        Connection.Dispose()
      End If
      Me._disposedValue = True
    End Sub
    Public Sub Dispose() Implements IDisposable.Dispose
      Dispose(True)
      GC.SuppressFinalize(Me)
    End Sub
#End Region


  End Class

End Namespace

No hay comentarios: