public ChildTransactionExecutionListener(ChildTransactionStrategy transactionStrategy, IWxeFunctionExecutionListener innerListener) { ArgumentUtility.CheckNotNull("transactionStrategy", transactionStrategy); ArgumentUtility.CheckNotNull("innerListener", innerListener); _transactionStrategy = transactionStrategy; _innerListener = innerListener; }
public override sealed TransactionStrategyBase CreateChildTransactionStrategy(bool autoCommit, IWxeFunctionExecutionContext executionContext, WxeContext wxeContext) { ArgumentUtility.CheckNotNull("executionContext", executionContext); ArgumentUtility.CheckNotNull("wxeContext", wxeContext); if (!_child.IsNull) { throw new InvalidOperationException( "The transaction strategy already has an active child transaction strategy. " + "This child transaction strategy must first be unregistered before invoking CreateChildTransactionStrategy again."); } var childTransactionStrategy = new ChildTransactionStrategy(autoCommit, this, Transaction, executionContext); _child = childTransactionStrategy; if (_scope != null) { _child.OnExecutionPlay(wxeContext, NullExecutionListener.Null); } return(childTransactionStrategy); }