public void Close() { if (_isClosed) { return; } DevelopmentManagerFactory.RemoveTransaction(_key); try { // Do the actual DAL Commit PersistenceManager.Instance.Close(); _isDalTransactionOpen = false; } finally { _isClosed = true; } if (!_isReadOnly && !_isCommitted && !_isRolledBack) { throw new Exception("Transaction not commited or rolled back."); } }
public void Rollback() { _lastTaskWasCommit = false; if (_isClosed || _isCommitted || _isRolledBack || _isReadOnly) { return; } try { // Do the actual DAL Commit PersistenceManager.Instance.RollbackTransaction(); DevelopmentManagerFactory.TransactionRollbacked(this); _isRolledBack = true; _isDalTransactionOpen = false; } finally { Close(); } }
public void Commit() { _lastTaskWasCommit = true; _commitCount--; if (_commitCount > 0 || _isClosed || _isRolledBack || _isCommitted || _isReadOnly) { return; } try { // Do the actual DAL Commit PersistenceManager.Instance.CommitTransaction(); DevelopmentManagerFactory.TransactionCommited(this); _isCommitted = true; _isDalTransactionOpen = false; Close(); } catch (Exception ex) { throw ex; } finally { try { if (!_isCommitted) { Rollback(); } } catch (Exception exc) { throw new Exception("Exception when rolling back transaction", exc); } } }
public ITransaction GetTransaction(bool create) { return(DevelopmentManagerFactory.GetTransaction(create)); }