public void Rollback(IEnlistment enlistment)
        {
            if (this.executeHasBeenCalled)
            {
                this.account.Balance = this.account.Balance - this.amount;
            }

            enlistment.Done();
        }
Esempio n. 2
0
        /// <summary>
        /// 向当前事务登记一个事务处理过程的回调。
        /// </summary>
        /// <param name="enlistment">指定的事务处理过程的回调接口。</param>
        public void Enlist(IEnlistment enlistment)
        {
            if (enlistment == null)
            {
                throw new ArgumentNullException("enlistment");
            }

            //如果指定的事务处理程序已经被登记过则返回
            if (_enlistments.Contains(enlistment))
            {
                return;
            }

            //将指定的事务处理程序加入到列表中
            _enlistments.Enqueue(enlistment);

            //通知事务处理程序进入事务准备阶段
            //enlistment.OnEnlist(new EnlistmentContext(this, EnlistmentPhase.Prepare));
        }
 public override void InDoubt(IEnlistment enlistment)
 {
     enlistment.Done();
 }
 public override void Rollback(IEnlistment enlistment)
 {
     // Do rollback work...
     enlistment.Done();
 }
 public override void Commit(IEnlistment enlistment)
 {
     enlistment.Done();
 }
Esempio n. 6
0
 public abstract void InDoubt(IEnlistment enlistment);
Esempio n. 7
0
 public abstract void Rollback(IEnlistment enlistment);
Esempio n. 8
0
 public abstract void Commit(IEnlistment enlistment);
 public void InDoubt(IEnlistment enlistment)
 {
     this.Rollback(enlistment);
 }
 public void Commit(IEnlistment enlistment)
 {
     enlistment.Done();
 }