コード例 #1
0
 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());
 }
コード例 #2
0
 public ReceiveResponse()
 {
     responseResultWaiter    = TaskFuncTaskWaiter.CreateActivityDelegate();
     responseResultEvaluator = TaskFuncEvaluator.CreateActivityDelegate();
     Constraints.Add(OperationActivityHelper.VerifyParentIsWorkflowActivity());
     Constraints.Add(OperationActivityHelper.VerifyParentIsSendRequestReceiveResponseScope());
 }
        public ReceiveRequestSendResponseScope()
        {
            DelegateInArgument <Exception> propagatedException = new DelegateInArgument <Exception>();

            tryCatch = new TryCatch
            {
                //Try = Body, // it is already set above
                Catches =
                {
                    new Catch <Exception>
                    {
                        Action = new ActivityAction <Exception>
                        {
                            Argument = propagatedException,
                            Handler  = new ProtectFaultedOperation
                            {
                                PropagatedException = propagatedException,
                            },
                        },
                    },
                },
                // The Finally works differently here than in C#, it is called only when the Try/Catch blocks complete.
                // In case of exception, ProtectFaultedOperation will handle the exception and will close, won't fault.
                // So this Finally is called in case of Close, Cancel or Fault, only in case of Close or Cancel, we should check the operation task's completion state.
                Finally = new ProtectClosedOrCanceledOperation(),
            };

            Constraints.Add(OperationActivityHelper.VerifyParentIsWorkflowActivity());
            Constraints.Add(ReceiveRequestSendResponseScopeHelper.VerifyReceiveRequestSendResponseScopeChildren());
            Constraints.Add(ReceiveRequestSendResponseScopeHelper.SetWorkflowInterfaceOperationNames());
            Constraints.Add(ReceiveRequestSendResponseScopeHelper.SetReceiveRequestSendResponseScopeExecutionPropertyFactory());
        }
コード例 #4
0
 public SendRequest()
 {
     OperationNames = new ObservableCollection <string>();
     Constraints.Add(OperationActivityHelper.VerifyParentIsWorkflowActivity());
     Constraints.Add(OperationActivityHelper.VerifyParentIsSendRequestReceiveResponseScope());
     Constraints.Add(OperationActivityHelper.VerifyIsOperationNameSetAndValid());
 }
コード例 #5
0
 public ReceiveRequest()
 {
     this.OperationNames         = new ObservableCollection <string>();
     this.requestResultEvaluator = TaskFuncEvaluator.CreateActivityDelegate();
     this.Constraints.Add(OperationActivityHelper.VerifyParentIsWorkflowActivity());
     this.Constraints.Add(OperationActivityHelper.VerifyParentIsReceiveRequestSendResponseScope());
     this.Constraints.Add(OperationActivityHelper.VerifyIsOperationNameSetAndValid());
 }
コード例 #6
0
 public SendRequest()
 {
     OperationNames = new ObservableCollection <string>();
     Constraints.Add(OperationActivityHelper.VerifyParentIsWorkflowActivity());
     Constraints.Add(OperationActivityHelper.VerifyIsOperationNameSet());
     Constraints.Add(OperationActivityHelper.SetWorkflowCallbackInterfaceOperationNames());
     Constraints.Add(SendRequestReceiveResponseScopeHelper.VerifyParentIsSendRequestReceiveResponseScope());
 }
コード例 #7
0
 public ReceiveRequest()
 {
     OperationNames         = new ObservableCollection <string>();
     requestResultEvaluator = TaskFuncEvaluator.CreateActivityDelegate();
     Constraints.Add(OperationActivityHelper.VerifyParentIsWorkflowActivity());
     Constraints.Add(OperationActivityHelper.VerifyIsOperationNameSet());
     Constraints.Add(OperationActivityHelper.SetWorkflowInterfaceOperationNames());
     Constraints.Add(ReceiveRequestSendResponseScopeHelper.VerifyParentIsReceiveRequestSendResponseScope());
 }
コード例 #8
0
 public SendResponse()
 {
     persist = new Persist();
     Constraints.Add(OperationActivityHelper.VerifyParentIsWorkflowActivity());
     Constraints.Add(OperationActivityHelper.VerifyParentIsReceiveRequestSendResponseScope());
 }
コード例 #9
0
 public ReceiveRequestSendResponseScope()
 {
     Constraints.Add(OperationActivityHelper.VerifyParentIsWorkflowActivity());
     Constraints.Add(ReceiveRequestSendResponseScopeHelper.VerifyReceiveRequestSendResponseScopeChildren());
     Constraints.Add(ReceiveRequestSendResponseScopeHelper.SetReceiveRequestSendResponseScopeExecutionPropertyFactory());
 }