Пример #1
0
 internal static void AddTransaction( TransactionKey tk, DbTransaction dt )
 {
     CleanUpStaleTransactions();
     if ( dt.Connection.State != System.Data.ConnectionState.Closed || dt.Connection.State != System.Data.ConnectionState.Broken )
     {
         if ( !Instance.Stack.ContainsKey( tk ) )
         {
             tk.Connection = dt.Connection;
             dt.Connection.StateChange += new System.Data.StateChangeEventHandler( Connection_StateChange );
             dt.Connection.Disposed += new EventHandler( Connection_Disposed );
             Instance.Stack.Add( tk, dt );
         }
     }
     else
     {
         throw new PersistenceException(
             String.Format( System.Globalization.CultureInfo.InvariantCulture,
             "Connection is currently unusable; Transaction was not added.  Connection.State was: {0}",
             dt.Connection.State.ToString() ) );
     }
 }
Пример #2
0
 internal static TransactionKey Generate( DbConnection connection )
 {
     TransactionKey tk = new TransactionKey( TransactionKeyType.Internal );
     tk.Connection = connection;
     TransactionManager.AddTransaction( tk, connection.BeginTransaction( IsolationLevel.Serializable ) );
     return ( tk );
 }
Пример #3
0
 internal DbTransaction this[TransactionKey key]
 {
     get { return ( Instance.Stack[ key ] ); }
 }
Пример #4
0
 internal static void RollbackTransaction( TransactionKey tk )
 {
     Instance[tk].Rollback();
     tk.Status = TransactionStatus.RolledBack;
 }
Пример #5
0
 internal static void RemoveTransaction( TransactionKey tk )
 {
     if ( Instance.Stack.ContainsKey( tk ) ) Instance.Stack.Remove( tk );
 }
Пример #6
0
 internal static bool ContainsTransactionKey( TransactionKey tk )
 {
     return ( Instance.Stack.ContainsKey( tk ) );
 }
Пример #7
0
 internal static void CommitTransaction( TransactionKey tk )
 {
     Instance[tk].Commit();
     tk.Status = TransactionStatus.Commited;
 }