System.Transactions.Tests.NonMsdtcPromoterTests.NonMSDTCPromoterEnlistment.Promote C# (CSharp) Метод

Promote() публичный Метод

public Promote ( ) : byte[]
Результат byte[]
            public byte[] Promote()
            {
                Trace("NonMSDTCPromoterEnlistment.Promote");
                this.Promoted = true;
                _distributedTxId = Guid.NewGuid();
                if (_failPromote)
                {
                    Trace("NonMSDTCPromoterEnlistment.Promote - Failing based on configuration");
                    throw new ApplicationException("Failing promotion based on configuration");
                }

                // invoke this.enlistedTransaction.SetDistributedTransactionIdentifier(this, this.promoterType); via reflection
                if (_incorrectNotificationObjectToSetDistributedTransactionId)
                {
                    NonMSDTCPromoterEnlistment incorrectNotificationObject = new NonMSDTCPromoterEnlistment(_promoterType, _promotedToken, _completionEvent);
                    try
                    {
                        SetDistributedTransactionId(incorrectNotificationObject, _enlistedTransaction, _distributedTxId);
                        throw new ApplicationException("SetDistributedTransactionIdentifier did not throw the expected InvalidOperationException");
                    }
                    catch (TargetInvocationException ex)
                    {
                        if (!(ex.InnerException is InvalidOperationException))
                        {
                            throw new ApplicationException("SetDistributedTransactionIdentifier did not throw the expected InvalidOperationException");
                        }
                    }
                }
                else
                {
                    SetDistributedTransactionId(this, _enlistedTransaction, _distributedTxId);
                }

                return _promotedToken;
            }