예제 #1
0
        public virtual void Commit()
        {
            this.Context.LogManager.Info(this, "Committing local transaction", "Data source: " + m_DataSource.Name + ", " + "Auto persist: " + m_AutoPersistAllOnCommit.ToString());               // do not localize

            TransactionCancelEventArgs e = new TransactionCancelEventArgs(this, m_DataSource, this.IsolationLevel, m_AutoPersistAllOnCommit);

            this.Context.EventManager.OnCommittingTransaction(this, e);
            if (e.Cancel)
            {
                return;
            }
            m_AutoPersistAllOnCommit = e.AutoPersistAllOnCommit;

            if (m_AutoPersistAllOnCommit)
            {
                this.Context.Commit();
            }
            m_DbTransaction.Commit();
            this.Context.OnTransactionComplete(this);
            m_DataSource.KeepConnectionOpen = m_OriginalKeepOpen;

            m_DataSource.ReturnConnection();

            TransactionEventArgs e2 = new TransactionEventArgs(this, m_DataSource, m_AutoPersistAllOnCommit);

            this.Context.EventManager.OnCommittedTransaction(this, e2);
        }
예제 #2
0
        public override void Rollback()
        {
            base.Rollback();

            LogMessage message = new LogMessage("Rolling back local transaction");
            LogMessage verbose = new LogMessage("Data source: {0}, Auto persist: {1}", m_DataSource.Name, this.AutoPersistAllOnCommit);

            this.Context.LogManager.Info(this, message, verbose); // do not localize

            TransactionCancelEventArgs e = new TransactionCancelEventArgs(this, m_DataSource, this.AutoPersistAllOnCommit);

            this.Context.EventManager.OnRollingbackTransaction(this, e);
            if (e.Cancel)
            {
                return;
            }
            this.AutoPersistAllOnCommit = e.AutoPersistAllOnCommit;
            m_DbTransaction.Rollback();
            this.Context.OnTransactionComplete(this);
            m_DataSource.KeepConnectionOpen = m_OriginalKeepOpen;
            m_DataSource.ReturnConnection();

            TransactionEventArgs e2 = new TransactionEventArgs(this, m_DataSource, this.AutoPersistAllOnCommit);

            this.Context.EventManager.OnRolledbackTransaction(this, e2);
        }
예제 #3
0
 public virtual void OnRollingbackTransaction(object sender, TransactionCancelEventArgs e)
 {
 }
예제 #4
0
 public virtual void OnCommittingTransaction(object sender, TransactionCancelEventArgs e)
 {
 }
예제 #5
0
 public virtual void OnBeginningTransaction(object sender, TransactionCancelEventArgs e)
 {
 }
 /// <summary>
 /// evento di notifica inizio elaborazione di una transazione
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void DefaultRepeater_TransactionStarting(object sender, TransactionCancelEventArgs e)
 {
     //e.Cancel = true: annulla l'operazione
 }