public Activity Create(DependencyObject target) { // Sequence container. var sequence = new Sequence(); sequence.DisplayName = "Reject"; // Correlation Handle. var handle = new Variable <CorrelationHandle>("_handle"); var leave = new Variable <Leave>("_leave"); // Get variable collection. var variables = GetVariableCollection(target); if (variables == null) { sequence.Variables.Add(handle); sequence.Variables.Add(leave); } else { handle = AddVariable <CorrelationHandle>(variables, handle); leave = AddVariable <Leave>(variables, leave); } // Create Receive Activity. var receive = new Receive(); receive.DisplayName = "Reject Receive"; receive.Action = "http://tempuri.org/ILeaveWorkflowService/Reject"; receive.OperationName = "Reject"; receive.ProtectionLevel = ProtectionLevel.None; receive.ServiceContractName = "ILeaveWorkflowService"; // Add parameters to Receive var parameters = new ReceiveParametersContent(); parameters.Parameters.Add("leave", new OutArgument <Leave>(leave)); receive.Content = parameters; // Add CorrelationInitializer to Receive var initializer = new RequestReplyCorrelationInitializer(); initializer.CorrelationHandle = new InArgument <CorrelationHandle>(handle); receive.CorrelationInitializers.Add(initializer); // Create SendReply Activity var send = new SendReply(); send.DisplayName = "Reject Reply"; send.Action = "http://tempuri.org/ILeaveWorkflowService/RejectResponse"; send.Request = receive; send.PersistBeforeSend = true; // Add parameters to SendReply var sendParameters = new SendParametersContent(); sendParameters.Parameters.Add("RejectResponseResult", new InArgument <Leave>(leave)); send.Content = sendParameters; // Create Reject activity. Reject reject = new Reject(); reject.DisplayName = "Reject"; reject.Leave = leave; // Add activities to sequence. sequence.Activities.Add(receive); sequence.Activities.Add(reject); sequence.Activities.Add(send); return(sequence); }
public Activity Create(System.Windows.DependencyObject target) { // _service = CustomUnityContainer.Container.Resolve<IService<CR>>(); // Sequence container. var sequence = new Sequence(); sequence.DisplayName = "Update Task"; // Correlation Handle. var handle = new Variable<CorrelationHandle>("_handle"); var workItem = new Variable<Task>("_workItemTask"); // Get variable collection. var variables = GetVariableCollection(target); if (variables == null) { sequence.Variables.Add(handle); sequence.Variables.Add(workItem); } else { handle = AddVariable<CorrelationHandle>(variables, handle); workItem = AddVariable<Task>(variables, workItem); } // Create Receive Activity. var receive = new Receive(); receive.DisplayName = "Update Task Receive"; receive.Action = "http://tempuri.org/IPILCRWorkflowService/UpdateTask"; receive.OperationName = "UpdateTask"; receive.ProtectionLevel = ProtectionLevel.None; receive.ServiceContractName = "IPILCRWorkflowService"; // Add parameters to Receive var parameters = new ReceiveParametersContent(); parameters.Parameters.Add("workItem", new OutArgument<Task>(workItem)); receive.Content = parameters; // Add CorrelationInitializer to Receive var initializer = new RequestReplyCorrelationInitializer(); initializer.CorrelationHandle = new InArgument<CorrelationHandle>(handle); receive.CorrelationInitializers.Add(initializer); // Create SendReply Activity var send = new SendReply(); send.DisplayName = "Update Reply"; send.Action = "http://tempuri.org/IPILCRWorkflowService/UpdateTaskResponse"; send.Request = receive; send.PersistBeforeSend = true; // Add parameters to SendReply var sendParameters = new SendParametersContent(); sendParameters.Parameters.Add("UpdateResponseResult", new InArgument<Task>(workItem)); send.Content = sendParameters; // Create Create activity. UpdateTask activty = new UpdateTask(); activty.DisplayName = "UpdateTask"; activty.WorkItem = workItem; // Add activities to sequence. sequence.Activities.Add(receive); sequence.Activities.Add(activty); sequence.Activities.Add(send); return sequence; }
public Activity Create(DependencyObject target) { // Sequence container. var sequence = new Sequence(); sequence.DisplayName = "Apply"; // Correlation Handle. var handle = new Variable <CorrelationHandle>("_handle"); var applyResult = new Variable <TrainingRequest>("_applyResult"); var trainingRequest = new Variable <TrainingRequest>("_trainingRequest"); // Get variable collection. var variables = GetVariableCollection(target); if (variables == null) { sequence.Variables.Add(handle); sequence.Variables.Add(applyResult); sequence.Variables.Add(trainingRequest); } else { handle = AddVariable <CorrelationHandle>(variables, handle); applyResult = AddVariable <TrainingRequest>(variables, applyResult); trainingRequest = AddVariable <TrainingRequest>(variables, trainingRequest); } // Create Receive Activity. var receive = new Receive(); receive.DisplayName = "Apply Receive"; receive.Action = "http://tempuri.org/ITrainingWorkflowService/Apply"; receive.OperationName = "Apply"; receive.ProtectionLevel = ProtectionLevel.None; receive.ServiceContractName = "ITrainingWorkflowService"; receive.CanCreateInstance = true; // Add parameters to Receive var parameters = new ReceiveParametersContent(); parameters.Parameters.Add("trainingRequest", new OutArgument <TrainingRequest>(trainingRequest)); receive.Content = parameters; // Add CorrelationInitializer to Receive var initializer = new RequestReplyCorrelationInitializer(); initializer.CorrelationHandle = new InArgument <CorrelationHandle>(handle); receive.CorrelationInitializers.Add(initializer); // Create SendReply Activity var send = new SendReply(); send.DisplayName = "Apply Reply"; send.Action = "http://tempuri.org/ITrainingWorkflowService/ApplyResponse"; send.Request = receive; send.PersistBeforeSend = true; // Add parameters to SendReply var sendParameters = new SendParametersContent(); sendParameters.Parameters.Add("ApplyResponseResult", new InArgument <TrainingRequest>(applyResult)); send.Content = sendParameters; // Create Apply activity. Apply apply = new Apply(); apply.DisplayName = "Apply"; apply.ApplyResult = applyResult; apply.TrainingRequest = trainingRequest; // Add activities to sequence. sequence.Activities.Add(receive); sequence.Activities.Add(apply); sequence.Activities.Add(send); return(sequence); }