public ReceiveResponse() { responseResultWaiter = TaskFuncTaskWaiter.CreateActivityDelegate(); responseResultEvaluator = TaskFuncEvaluator.CreateActivityDelegate(); Constraints.Add(OperationActivityHelper.VerifyParentIsWorkflowActivity()); Constraints.Add(SendRequestReceiveResponseScopeHelper.VerifyParentIsSendRequestReceiveResponseScope()); }
public SendRequestReceiveResponseScope() { tryCatch = new TryCatch { //Try = Body, // it is already set above Catches = { new Catch <Exception> { Action = new ActivityAction <Exception> { Handler = new Sequence { Activities = { new ConditionalOperationTaskWaiter(), new Rethrow(), }, }, }, }, }, // The Finally works differently here than in C#, it is called only when the Try/Catch blocks complete. // In case of exception, those activities above will always Fault (the Body or additionally the operation task will throw). // This Finally is called only in case of Close or Cancel, in case of Cancel, we should also check the operation task's observed state. // A special case, when this scope is in an external TryCatch and that Catch handles the propagated exception, // in this case both Fault and Cancel happens, and we double-check the the operation task's observed state. Finally = new ConditionalOperationTaskWaiter(), }; noPersistHandle = new Variable <NoPersistHandle>(); Constraints.Add(OperationActivityHelper.VerifyParentIsWorkflowActivity()); Constraints.Add(SendRequestReceiveResponseScopeHelper.VerifySendRequestReceiveResponseScopeChildren()); Constraints.Add(SendRequestReceiveResponseScopeHelper.SetSendRequestReceiveResponseScopeExecutionPropertyFactory()); }
public SendRequest() { OperationNames = new ObservableCollection <string>(); Constraints.Add(OperationActivityHelper.VerifyParentIsWorkflowActivity()); Constraints.Add(OperationActivityHelper.VerifyIsOperationNameSet()); Constraints.Add(OperationActivityHelper.SetEffectorOperationNames()); Constraints.Add(SendRequestReceiveResponseScopeHelper.VerifyParentIsSendRequestReceiveResponseScope()); }