protected virtual void RegisterDataObject(HelpDesk_BaseData dataObject) { if (_txConnectionProvider == null) { _txConnectionProvider = new HelpDesk_TxConnectionProvider(); } if (dataObject != null) { dataObject.ConnectionProvider = _txConnectionProvider; } }
protected virtual void RegisterBusinessObject(HelpDesk_BaseBusiness busObject) { if (_txConnectionProvider == null) { _txConnectionProvider = new HelpDesk_TxConnectionProvider(); } busObject.ConnectionProvider = _txConnectionProvider; if (!_listBusObjects.Contains(busObject)) { _listBusObjects.Add(busObject); } }
public virtual void CommitTransaction() { if (_nestLevel > 0) { _nestLevel--; } if (_nestLevel == 0) { _txConnectionProvider.CommitTransaction(); _txConnectionProvider.CloseConnection(false); _txConnectionProvider = null; } }
protected virtual void Dispose(bool isDisposing) { if (!_isDisposed) { if (isDisposing) { if (_txConnectionProvider != null) { ((IDisposable)_txConnectionProvider).Dispose(); _txConnectionProvider = null; } } } _isDisposed = true; }
public virtual void BeginTransaction(string trans) { if (_nestLevel == 0) { if (_txConnectionProvider == null) { _txConnectionProvider = new HelpDesk_TxConnectionProvider(); } _txConnectionProvider.OpenConnection(); _txConnectionProvider.BeginTransaction(trans); if (_listBusObjects != null) { foreach (HelpDesk_BaseBusiness busObj in _listBusObjects) { busObj.MarkSubTransaction(); } } } _nestLevel++; }
public virtual void RollbackTransaction(string trans) { if (_nestLevel > 0) { _nestLevel--; } if (_nestLevel == 0) { try { _txConnectionProvider.RollbackTransaction(trans); _txConnectionProvider.CloseConnection(false); _txConnectionProvider = null; } catch (Exception ex) { //if transaction completed exception, swallow it if (ex.Message != "This SqlTransaction has completed; it is no longer usable.") { throw; } } } }
private void Init() { _nestLevel = 0; _txConnectionProvider = null; }