public override void OnExecutionPlay(WxeContext context, IWxeFunctionExecutionListener listener) { ArgumentUtility.CheckNotNull("context", context); ArgumentUtility.CheckNotNull("listener", listener); if (_scope != null) { throw new InvalidOperationException( "OnExecutionPlay may not be invoked twice without calling OnExecutionStop, OnExecutionPause, or OnExecutionFail in-between."); } ExecuteAndWrapInnerException(EnterScope, null); _child.OnExecutionPlay(context, listener); }
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); }