protected void ScheduleActivity(ScheduleActivityTaskDecisionAttributes activityDecisionInfo) { _decisions.Add(new Decision { DecisionType = new DecisionType("ScheduleActivityTask"), ScheduleActivityTaskDecisionAttributes = activityDecisionInfo }); }
/// <summary> /// Helper method to schedule an activity task /// </summary> /// <param name="activityContext">Activity setup context.</param> /// <returns>Properly set up decision completed request.</returns> protected RespondDecisionTaskCompletedRequest ScheduleActivityTask(WorkflowActivitySetupContext activityContext) { var attributes = new ScheduleActivityTaskDecisionAttributes { ActivityId = activityContext.ActivityId, ActivityType = new ActivityType { Name = activityContext.ActivityName, Version = activityContext.ActivityVersion }, Control = activityContext.Control, HeartbeatTimeout = activityContext.HeartbeatTimeout, Input = activityContext.Input, ScheduleToCloseTimeout = activityContext.ScheduleToCloseTimeout, ScheduleToStartTimeout = activityContext.ScheduleToStartTimeout, StartToCloseTimeout = activityContext.StartToCloseTimeout, TaskList = new TaskList { Name = activityContext.TaskList } }; var decisionRequest = new RespondDecisionTaskCompletedRequest { Decisions = new List <Decision> { new Decision { DecisionType = "ScheduleActivityTask", ScheduleActivityTaskDecisionAttributes = attributes } } }; Debug.WriteLine(">>> Decision: ScheduleActivityTask " + attributes.ActivityType.Name + " (" + attributes.ActivityType.Version + ")"); return(decisionRequest); }
public IRequest Marshall(RespondDecisionTaskCompletedRequest respondDecisionTaskCompletedRequest) { IRequest request = new DefaultRequest(respondDecisionTaskCompletedRequest, "AmazonSimpleWorkflow"); string target = "SimpleWorkflowService.RespondDecisionTaskCompleted"; request.Headers["X-Amz-Target"] = target; request.Headers["Content-Type"] = "application/x-amz-json-1.0"; using (StringWriter stringWriter = new StringWriter()) { JsonWriter writer = new JsonWriter(stringWriter); writer.WriteObjectStart(); if (respondDecisionTaskCompletedRequest != null && respondDecisionTaskCompletedRequest.IsSetTaskToken()) { writer.WritePropertyName("taskToken"); writer.Write(respondDecisionTaskCompletedRequest.TaskToken); } if (respondDecisionTaskCompletedRequest != null && respondDecisionTaskCompletedRequest.Decisions != null && respondDecisionTaskCompletedRequest.Decisions.Count > 0) { List <Decision> decisionsList = respondDecisionTaskCompletedRequest.Decisions; writer.WritePropertyName("decisions"); writer.WriteArrayStart(); foreach (Decision decisionsListValue in decisionsList) { writer.WriteObjectStart(); if (decisionsListValue != null && decisionsListValue.IsSetDecisionType()) { writer.WritePropertyName("decisionType"); writer.Write(decisionsListValue.DecisionType); } if (decisionsListValue != null) { ScheduleActivityTaskDecisionAttributes scheduleActivityTaskDecisionAttributes = decisionsListValue.ScheduleActivityTaskDecisionAttributes; if (scheduleActivityTaskDecisionAttributes != null) { writer.WritePropertyName("scheduleActivityTaskDecisionAttributes"); writer.WriteObjectStart(); if (scheduleActivityTaskDecisionAttributes != null) { ActivityType activityType = scheduleActivityTaskDecisionAttributes.ActivityType; if (activityType != null) { writer.WritePropertyName("activityType"); writer.WriteObjectStart(); if (activityType != null && activityType.IsSetName()) { writer.WritePropertyName("name"); writer.Write(activityType.Name); } if (activityType != null && activityType.IsSetVersion()) { writer.WritePropertyName("version"); writer.Write(activityType.Version); } writer.WriteObjectEnd(); } } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetActivityId()) { writer.WritePropertyName("activityId"); writer.Write(scheduleActivityTaskDecisionAttributes.ActivityId); } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetControl()) { writer.WritePropertyName("control"); writer.Write(scheduleActivityTaskDecisionAttributes.Control); } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetInput()) { writer.WritePropertyName("input"); writer.Write(scheduleActivityTaskDecisionAttributes.Input); } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetScheduleToCloseTimeout()) { writer.WritePropertyName("scheduleToCloseTimeout"); writer.Write(scheduleActivityTaskDecisionAttributes.ScheduleToCloseTimeout); } if (scheduleActivityTaskDecisionAttributes != null) { TaskList taskList = scheduleActivityTaskDecisionAttributes.TaskList; if (taskList != null) { writer.WritePropertyName("taskList"); writer.WriteObjectStart(); if (taskList != null && taskList.IsSetName()) { writer.WritePropertyName("name"); writer.Write(taskList.Name); } writer.WriteObjectEnd(); } } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetScheduleToStartTimeout()) { writer.WritePropertyName("scheduleToStartTimeout"); writer.Write(scheduleActivityTaskDecisionAttributes.ScheduleToStartTimeout); } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetStartToCloseTimeout()) { writer.WritePropertyName("startToCloseTimeout"); writer.Write(scheduleActivityTaskDecisionAttributes.StartToCloseTimeout); } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetHeartbeatTimeout()) { writer.WritePropertyName("heartbeatTimeout"); writer.Write(scheduleActivityTaskDecisionAttributes.HeartbeatTimeout); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { RequestCancelActivityTaskDecisionAttributes requestCancelActivityTaskDecisionAttributes = decisionsListValue.RequestCancelActivityTaskDecisionAttributes; if (requestCancelActivityTaskDecisionAttributes != null) { writer.WritePropertyName("requestCancelActivityTaskDecisionAttributes"); writer.WriteObjectStart(); if (requestCancelActivityTaskDecisionAttributes != null && requestCancelActivityTaskDecisionAttributes.IsSetActivityId()) { writer.WritePropertyName("activityId"); writer.Write(requestCancelActivityTaskDecisionAttributes.ActivityId); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { CompleteWorkflowExecutionDecisionAttributes completeWorkflowExecutionDecisionAttributes = decisionsListValue.CompleteWorkflowExecutionDecisionAttributes; if (completeWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("completeWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (completeWorkflowExecutionDecisionAttributes != null && completeWorkflowExecutionDecisionAttributes.IsSetResult()) { writer.WritePropertyName("result"); writer.Write(completeWorkflowExecutionDecisionAttributes.Result); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { FailWorkflowExecutionDecisionAttributes failWorkflowExecutionDecisionAttributes = decisionsListValue.FailWorkflowExecutionDecisionAttributes; if (failWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("failWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (failWorkflowExecutionDecisionAttributes != null && failWorkflowExecutionDecisionAttributes.IsSetReason()) { writer.WritePropertyName("reason"); writer.Write(failWorkflowExecutionDecisionAttributes.Reason); } if (failWorkflowExecutionDecisionAttributes != null && failWorkflowExecutionDecisionAttributes.IsSetDetails()) { writer.WritePropertyName("details"); writer.Write(failWorkflowExecutionDecisionAttributes.Details); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { CancelWorkflowExecutionDecisionAttributes cancelWorkflowExecutionDecisionAttributes = decisionsListValue.CancelWorkflowExecutionDecisionAttributes; if (cancelWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("cancelWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (cancelWorkflowExecutionDecisionAttributes != null && cancelWorkflowExecutionDecisionAttributes.IsSetDetails()) { writer.WritePropertyName("details"); writer.Write(cancelWorkflowExecutionDecisionAttributes.Details); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { ContinueAsNewWorkflowExecutionDecisionAttributes continueAsNewWorkflowExecutionDecisionAttributes = decisionsListValue.ContinueAsNewWorkflowExecutionDecisionAttributes; if (continueAsNewWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("continueAsNewWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (continueAsNewWorkflowExecutionDecisionAttributes != null && continueAsNewWorkflowExecutionDecisionAttributes.IsSetInput()) { writer.WritePropertyName("input"); writer.Write(continueAsNewWorkflowExecutionDecisionAttributes.Input); } if (continueAsNewWorkflowExecutionDecisionAttributes != null && continueAsNewWorkflowExecutionDecisionAttributes.IsSetExecutionStartToCloseTimeout()) { writer.WritePropertyName("executionStartToCloseTimeout"); writer.Write(continueAsNewWorkflowExecutionDecisionAttributes.ExecutionStartToCloseTimeout); } if (continueAsNewWorkflowExecutionDecisionAttributes != null) { TaskList taskList = continueAsNewWorkflowExecutionDecisionAttributes.TaskList; if (taskList != null) { writer.WritePropertyName("taskList"); writer.WriteObjectStart(); if (taskList != null && taskList.IsSetName()) { writer.WritePropertyName("name"); writer.Write(taskList.Name); } writer.WriteObjectEnd(); } } if (continueAsNewWorkflowExecutionDecisionAttributes != null && continueAsNewWorkflowExecutionDecisionAttributes.IsSetTaskStartToCloseTimeout()) { writer.WritePropertyName("taskStartToCloseTimeout"); writer.Write(continueAsNewWorkflowExecutionDecisionAttributes.TaskStartToCloseTimeout); } if (continueAsNewWorkflowExecutionDecisionAttributes != null && continueAsNewWorkflowExecutionDecisionAttributes.IsSetChildPolicy()) { writer.WritePropertyName("childPolicy"); writer.Write(continueAsNewWorkflowExecutionDecisionAttributes.ChildPolicy); } if (continueAsNewWorkflowExecutionDecisionAttributes != null && continueAsNewWorkflowExecutionDecisionAttributes.TagList != null && continueAsNewWorkflowExecutionDecisionAttributes.TagList.Count > 0) { List <string> tagListList = continueAsNewWorkflowExecutionDecisionAttributes.TagList; writer.WritePropertyName("tagList"); writer.WriteArrayStart(); foreach (string tagListListValue in tagListList) { writer.Write(StringUtils.FromString(tagListListValue)); } writer.WriteArrayEnd(); } if (continueAsNewWorkflowExecutionDecisionAttributes != null && continueAsNewWorkflowExecutionDecisionAttributes.IsSetWorkflowTypeVersion()) { writer.WritePropertyName("workflowTypeVersion"); writer.Write(continueAsNewWorkflowExecutionDecisionAttributes.WorkflowTypeVersion); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { RecordMarkerDecisionAttributes recordMarkerDecisionAttributes = decisionsListValue.RecordMarkerDecisionAttributes; if (recordMarkerDecisionAttributes != null) { writer.WritePropertyName("recordMarkerDecisionAttributes"); writer.WriteObjectStart(); if (recordMarkerDecisionAttributes != null && recordMarkerDecisionAttributes.IsSetMarkerName()) { writer.WritePropertyName("markerName"); writer.Write(recordMarkerDecisionAttributes.MarkerName); } if (recordMarkerDecisionAttributes != null && recordMarkerDecisionAttributes.IsSetDetails()) { writer.WritePropertyName("details"); writer.Write(recordMarkerDecisionAttributes.Details); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { StartTimerDecisionAttributes startTimerDecisionAttributes = decisionsListValue.StartTimerDecisionAttributes; if (startTimerDecisionAttributes != null) { writer.WritePropertyName("startTimerDecisionAttributes"); writer.WriteObjectStart(); if (startTimerDecisionAttributes != null && startTimerDecisionAttributes.IsSetTimerId()) { writer.WritePropertyName("timerId"); writer.Write(startTimerDecisionAttributes.TimerId); } if (startTimerDecisionAttributes != null && startTimerDecisionAttributes.IsSetControl()) { writer.WritePropertyName("control"); writer.Write(startTimerDecisionAttributes.Control); } if (startTimerDecisionAttributes != null && startTimerDecisionAttributes.IsSetStartToFireTimeout()) { writer.WritePropertyName("startToFireTimeout"); writer.Write(startTimerDecisionAttributes.StartToFireTimeout); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { CancelTimerDecisionAttributes cancelTimerDecisionAttributes = decisionsListValue.CancelTimerDecisionAttributes; if (cancelTimerDecisionAttributes != null) { writer.WritePropertyName("cancelTimerDecisionAttributes"); writer.WriteObjectStart(); if (cancelTimerDecisionAttributes != null && cancelTimerDecisionAttributes.IsSetTimerId()) { writer.WritePropertyName("timerId"); writer.Write(cancelTimerDecisionAttributes.TimerId); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { SignalExternalWorkflowExecutionDecisionAttributes signalExternalWorkflowExecutionDecisionAttributes = decisionsListValue.SignalExternalWorkflowExecutionDecisionAttributes; if (signalExternalWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("signalExternalWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (signalExternalWorkflowExecutionDecisionAttributes != null && signalExternalWorkflowExecutionDecisionAttributes.IsSetWorkflowId()) { writer.WritePropertyName("workflowId"); writer.Write(signalExternalWorkflowExecutionDecisionAttributes.WorkflowId); } if (signalExternalWorkflowExecutionDecisionAttributes != null && signalExternalWorkflowExecutionDecisionAttributes.IsSetRunId()) { writer.WritePropertyName("runId"); writer.Write(signalExternalWorkflowExecutionDecisionAttributes.RunId); } if (signalExternalWorkflowExecutionDecisionAttributes != null && signalExternalWorkflowExecutionDecisionAttributes.IsSetSignalName()) { writer.WritePropertyName("signalName"); writer.Write(signalExternalWorkflowExecutionDecisionAttributes.SignalName); } if (signalExternalWorkflowExecutionDecisionAttributes != null && signalExternalWorkflowExecutionDecisionAttributes.IsSetInput()) { writer.WritePropertyName("input"); writer.Write(signalExternalWorkflowExecutionDecisionAttributes.Input); } if (signalExternalWorkflowExecutionDecisionAttributes != null && signalExternalWorkflowExecutionDecisionAttributes.IsSetControl()) { writer.WritePropertyName("control"); writer.Write(signalExternalWorkflowExecutionDecisionAttributes.Control); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { RequestCancelExternalWorkflowExecutionDecisionAttributes requestCancelExternalWorkflowExecutionDecisionAttributes = decisionsListValue.RequestCancelExternalWorkflowExecutionDecisionAttributes; if (requestCancelExternalWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("requestCancelExternalWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (requestCancelExternalWorkflowExecutionDecisionAttributes != null && requestCancelExternalWorkflowExecutionDecisionAttributes.IsSetWorkflowId()) { writer.WritePropertyName("workflowId"); writer.Write(requestCancelExternalWorkflowExecutionDecisionAttributes.WorkflowId); } if (requestCancelExternalWorkflowExecutionDecisionAttributes != null && requestCancelExternalWorkflowExecutionDecisionAttributes.IsSetRunId()) { writer.WritePropertyName("runId"); writer.Write(requestCancelExternalWorkflowExecutionDecisionAttributes.RunId); } if (requestCancelExternalWorkflowExecutionDecisionAttributes != null && requestCancelExternalWorkflowExecutionDecisionAttributes.IsSetControl()) { writer.WritePropertyName("control"); writer.Write(requestCancelExternalWorkflowExecutionDecisionAttributes.Control); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { StartChildWorkflowExecutionDecisionAttributes startChildWorkflowExecutionDecisionAttributes = decisionsListValue.StartChildWorkflowExecutionDecisionAttributes; if (startChildWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("startChildWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (startChildWorkflowExecutionDecisionAttributes != null) { WorkflowType workflowType = startChildWorkflowExecutionDecisionAttributes.WorkflowType; if (workflowType != null) { writer.WritePropertyName("workflowType"); writer.WriteObjectStart(); if (workflowType != null && workflowType.IsSetName()) { writer.WritePropertyName("name"); writer.Write(workflowType.Name); } if (workflowType != null && workflowType.IsSetVersion()) { writer.WritePropertyName("version"); writer.Write(workflowType.Version); } writer.WriteObjectEnd(); } } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.IsSetWorkflowId()) { writer.WritePropertyName("workflowId"); writer.Write(startChildWorkflowExecutionDecisionAttributes.WorkflowId); } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.IsSetControl()) { writer.WritePropertyName("control"); writer.Write(startChildWorkflowExecutionDecisionAttributes.Control); } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.IsSetInput()) { writer.WritePropertyName("input"); writer.Write(startChildWorkflowExecutionDecisionAttributes.Input); } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.IsSetExecutionStartToCloseTimeout()) { writer.WritePropertyName("executionStartToCloseTimeout"); writer.Write(startChildWorkflowExecutionDecisionAttributes.ExecutionStartToCloseTimeout); } if (startChildWorkflowExecutionDecisionAttributes != null) { TaskList taskList = startChildWorkflowExecutionDecisionAttributes.TaskList; if (taskList != null) { writer.WritePropertyName("taskList"); writer.WriteObjectStart(); if (taskList != null && taskList.IsSetName()) { writer.WritePropertyName("name"); writer.Write(taskList.Name); } writer.WriteObjectEnd(); } } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.IsSetTaskStartToCloseTimeout()) { writer.WritePropertyName("taskStartToCloseTimeout"); writer.Write(startChildWorkflowExecutionDecisionAttributes.TaskStartToCloseTimeout); } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.IsSetChildPolicy()) { writer.WritePropertyName("childPolicy"); writer.Write(startChildWorkflowExecutionDecisionAttributes.ChildPolicy); } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.TagList != null && startChildWorkflowExecutionDecisionAttributes.TagList.Count > 0) { List <string> tagListList = startChildWorkflowExecutionDecisionAttributes.TagList; writer.WritePropertyName("tagList"); writer.WriteArrayStart(); foreach (string tagListListValue in tagListList) { writer.Write(StringUtils.FromString(tagListListValue)); } writer.WriteArrayEnd(); } writer.WriteObjectEnd(); } } writer.WriteObjectEnd(); } writer.WriteArrayEnd(); } if (respondDecisionTaskCompletedRequest != null && respondDecisionTaskCompletedRequest.IsSetExecutionContext()) { writer.WritePropertyName("executionContext"); writer.Write(respondDecisionTaskCompletedRequest.ExecutionContext); } writer.WriteObjectEnd(); string snippet = stringWriter.ToString(); request.Content = System.Text.Encoding.UTF8.GetBytes(snippet); return(request); } }
public IRequest Marshall(RespondDecisionTaskCompletedRequest respondDecisionTaskCompletedRequest) { IRequest request = new DefaultRequest(respondDecisionTaskCompletedRequest, "AmazonSimpleWorkflow"); string target = "SimpleWorkflowService.RespondDecisionTaskCompleted"; request.Headers["X-Amz-Target"] = target; request.Headers["Content-Type"] = "application/x-amz-json-1.0"; string uriResourcePath = ""; if (uriResourcePath.Contains("?")) { int queryPosition = uriResourcePath.IndexOf("?", StringComparison.OrdinalIgnoreCase); string queryString = uriResourcePath.Substring(queryPosition + 1); uriResourcePath = uriResourcePath.Substring(0, queryPosition); foreach (string s in queryString.Split('&', ';')) { string[] nameValuePair = s.Split('='); if (nameValuePair.Length == 2 && nameValuePair[1].Length > 0) { request.Parameters.Add(nameValuePair[0], nameValuePair[1]); } else { request.Parameters.Add(nameValuePair[0], null); } } } request.ResourcePath = uriResourcePath; using (StringWriter stringWriter = new StringWriter(System.Globalization.CultureInfo.InvariantCulture)) { JsonWriter writer = new JsonWriter(stringWriter); writer.WriteObjectStart(); if (respondDecisionTaskCompletedRequest != null && respondDecisionTaskCompletedRequest.IsSetTaskToken()) { writer.WritePropertyName("taskToken"); writer.Write(respondDecisionTaskCompletedRequest.TaskToken); } if (respondDecisionTaskCompletedRequest != null && respondDecisionTaskCompletedRequest.Decisions != null && respondDecisionTaskCompletedRequest.Decisions.Count > 0) { List <Decision> decisionsList = respondDecisionTaskCompletedRequest.Decisions; writer.WritePropertyName("decisions"); writer.WriteArrayStart(); foreach (Decision decisionsListValue in decisionsList) { writer.WriteObjectStart(); if (decisionsListValue != null && decisionsListValue.IsSetDecisionType()) { writer.WritePropertyName("decisionType"); writer.Write(decisionsListValue.DecisionType); } if (decisionsListValue != null) { ScheduleActivityTaskDecisionAttributes scheduleActivityTaskDecisionAttributes = decisionsListValue.ScheduleActivityTaskDecisionAttributes; if (scheduleActivityTaskDecisionAttributes != null) { writer.WritePropertyName("scheduleActivityTaskDecisionAttributes"); writer.WriteObjectStart(); if (scheduleActivityTaskDecisionAttributes != null) { ActivityType activityType = scheduleActivityTaskDecisionAttributes.ActivityType; if (activityType != null) { writer.WritePropertyName("activityType"); writer.WriteObjectStart(); if (activityType != null && activityType.IsSetName()) { writer.WritePropertyName("name"); writer.Write(activityType.Name); } if (activityType != null && activityType.IsSetVersion()) { writer.WritePropertyName("version"); writer.Write(activityType.Version); } writer.WriteObjectEnd(); } } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetActivityId()) { writer.WritePropertyName("activityId"); writer.Write(scheduleActivityTaskDecisionAttributes.ActivityId); } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetControl()) { writer.WritePropertyName("control"); writer.Write(scheduleActivityTaskDecisionAttributes.Control); } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetInput()) { writer.WritePropertyName("input"); writer.Write(scheduleActivityTaskDecisionAttributes.Input); } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetScheduleToCloseTimeout()) { writer.WritePropertyName("scheduleToCloseTimeout"); writer.Write(scheduleActivityTaskDecisionAttributes.ScheduleToCloseTimeout); } if (scheduleActivityTaskDecisionAttributes != null) { TaskList taskList = scheduleActivityTaskDecisionAttributes.TaskList; if (taskList != null) { writer.WritePropertyName("taskList"); writer.WriteObjectStart(); if (taskList != null && taskList.IsSetName()) { writer.WritePropertyName("name"); writer.Write(taskList.Name); } writer.WriteObjectEnd(); } } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetScheduleToStartTimeout()) { writer.WritePropertyName("scheduleToStartTimeout"); writer.Write(scheduleActivityTaskDecisionAttributes.ScheduleToStartTimeout); } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetStartToCloseTimeout()) { writer.WritePropertyName("startToCloseTimeout"); writer.Write(scheduleActivityTaskDecisionAttributes.StartToCloseTimeout); } if (scheduleActivityTaskDecisionAttributes != null && scheduleActivityTaskDecisionAttributes.IsSetHeartbeatTimeout()) { writer.WritePropertyName("heartbeatTimeout"); writer.Write(scheduleActivityTaskDecisionAttributes.HeartbeatTimeout); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { RequestCancelActivityTaskDecisionAttributes requestCancelActivityTaskDecisionAttributes = decisionsListValue.RequestCancelActivityTaskDecisionAttributes; if (requestCancelActivityTaskDecisionAttributes != null) { writer.WritePropertyName("requestCancelActivityTaskDecisionAttributes"); writer.WriteObjectStart(); if (requestCancelActivityTaskDecisionAttributes != null && requestCancelActivityTaskDecisionAttributes.IsSetActivityId()) { writer.WritePropertyName("activityId"); writer.Write(requestCancelActivityTaskDecisionAttributes.ActivityId); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { CompleteWorkflowExecutionDecisionAttributes completeWorkflowExecutionDecisionAttributes = decisionsListValue.CompleteWorkflowExecutionDecisionAttributes; if (completeWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("completeWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (completeWorkflowExecutionDecisionAttributes != null && completeWorkflowExecutionDecisionAttributes.IsSetResult()) { writer.WritePropertyName("result"); writer.Write(completeWorkflowExecutionDecisionAttributes.Result); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { FailWorkflowExecutionDecisionAttributes failWorkflowExecutionDecisionAttributes = decisionsListValue.FailWorkflowExecutionDecisionAttributes; if (failWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("failWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (failWorkflowExecutionDecisionAttributes != null && failWorkflowExecutionDecisionAttributes.IsSetReason()) { writer.WritePropertyName("reason"); writer.Write(failWorkflowExecutionDecisionAttributes.Reason); } if (failWorkflowExecutionDecisionAttributes != null && failWorkflowExecutionDecisionAttributes.IsSetDetails()) { writer.WritePropertyName("details"); writer.Write(failWorkflowExecutionDecisionAttributes.Details); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { CancelWorkflowExecutionDecisionAttributes cancelWorkflowExecutionDecisionAttributes = decisionsListValue.CancelWorkflowExecutionDecisionAttributes; if (cancelWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("cancelWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (cancelWorkflowExecutionDecisionAttributes != null && cancelWorkflowExecutionDecisionAttributes.IsSetDetails()) { writer.WritePropertyName("details"); writer.Write(cancelWorkflowExecutionDecisionAttributes.Details); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { ContinueAsNewWorkflowExecutionDecisionAttributes continueAsNewWorkflowExecutionDecisionAttributes = decisionsListValue.ContinueAsNewWorkflowExecutionDecisionAttributes; if (continueAsNewWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("continueAsNewWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (continueAsNewWorkflowExecutionDecisionAttributes != null && continueAsNewWorkflowExecutionDecisionAttributes.IsSetInput()) { writer.WritePropertyName("input"); writer.Write(continueAsNewWorkflowExecutionDecisionAttributes.Input); } if (continueAsNewWorkflowExecutionDecisionAttributes != null && continueAsNewWorkflowExecutionDecisionAttributes.IsSetExecutionStartToCloseTimeout()) { writer.WritePropertyName("executionStartToCloseTimeout"); writer.Write(continueAsNewWorkflowExecutionDecisionAttributes.ExecutionStartToCloseTimeout); } if (continueAsNewWorkflowExecutionDecisionAttributes != null) { TaskList taskList = continueAsNewWorkflowExecutionDecisionAttributes.TaskList; if (taskList != null) { writer.WritePropertyName("taskList"); writer.WriteObjectStart(); if (taskList != null && taskList.IsSetName()) { writer.WritePropertyName("name"); writer.Write(taskList.Name); } writer.WriteObjectEnd(); } } if (continueAsNewWorkflowExecutionDecisionAttributes != null && continueAsNewWorkflowExecutionDecisionAttributes.IsSetTaskStartToCloseTimeout()) { writer.WritePropertyName("taskStartToCloseTimeout"); writer.Write(continueAsNewWorkflowExecutionDecisionAttributes.TaskStartToCloseTimeout); } if (continueAsNewWorkflowExecutionDecisionAttributes != null && continueAsNewWorkflowExecutionDecisionAttributes.IsSetChildPolicy()) { writer.WritePropertyName("childPolicy"); writer.Write(continueAsNewWorkflowExecutionDecisionAttributes.ChildPolicy); } if (continueAsNewWorkflowExecutionDecisionAttributes != null && continueAsNewWorkflowExecutionDecisionAttributes.TagList != null && continueAsNewWorkflowExecutionDecisionAttributes.TagList.Count > 0) { List <string> tagListList = continueAsNewWorkflowExecutionDecisionAttributes.TagList; writer.WritePropertyName("tagList"); writer.WriteArrayStart(); foreach (string tagListListValue in tagListList) { writer.Write(StringUtils.FromString(tagListListValue)); } writer.WriteArrayEnd(); } if (continueAsNewWorkflowExecutionDecisionAttributes != null && continueAsNewWorkflowExecutionDecisionAttributes.IsSetWorkflowTypeVersion()) { writer.WritePropertyName("workflowTypeVersion"); writer.Write(continueAsNewWorkflowExecutionDecisionAttributes.WorkflowTypeVersion); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { RecordMarkerDecisionAttributes recordMarkerDecisionAttributes = decisionsListValue.RecordMarkerDecisionAttributes; if (recordMarkerDecisionAttributes != null) { writer.WritePropertyName("recordMarkerDecisionAttributes"); writer.WriteObjectStart(); if (recordMarkerDecisionAttributes != null && recordMarkerDecisionAttributes.IsSetMarkerName()) { writer.WritePropertyName("markerName"); writer.Write(recordMarkerDecisionAttributes.MarkerName); } if (recordMarkerDecisionAttributes != null && recordMarkerDecisionAttributes.IsSetDetails()) { writer.WritePropertyName("details"); writer.Write(recordMarkerDecisionAttributes.Details); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { StartTimerDecisionAttributes startTimerDecisionAttributes = decisionsListValue.StartTimerDecisionAttributes; if (startTimerDecisionAttributes != null) { writer.WritePropertyName("startTimerDecisionAttributes"); writer.WriteObjectStart(); if (startTimerDecisionAttributes != null && startTimerDecisionAttributes.IsSetTimerId()) { writer.WritePropertyName("timerId"); writer.Write(startTimerDecisionAttributes.TimerId); } if (startTimerDecisionAttributes != null && startTimerDecisionAttributes.IsSetControl()) { writer.WritePropertyName("control"); writer.Write(startTimerDecisionAttributes.Control); } if (startTimerDecisionAttributes != null && startTimerDecisionAttributes.IsSetStartToFireTimeout()) { writer.WritePropertyName("startToFireTimeout"); writer.Write(startTimerDecisionAttributes.StartToFireTimeout); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { CancelTimerDecisionAttributes cancelTimerDecisionAttributes = decisionsListValue.CancelTimerDecisionAttributes; if (cancelTimerDecisionAttributes != null) { writer.WritePropertyName("cancelTimerDecisionAttributes"); writer.WriteObjectStart(); if (cancelTimerDecisionAttributes != null && cancelTimerDecisionAttributes.IsSetTimerId()) { writer.WritePropertyName("timerId"); writer.Write(cancelTimerDecisionAttributes.TimerId); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { SignalExternalWorkflowExecutionDecisionAttributes signalExternalWorkflowExecutionDecisionAttributes = decisionsListValue.SignalExternalWorkflowExecutionDecisionAttributes; if (signalExternalWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("signalExternalWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (signalExternalWorkflowExecutionDecisionAttributes != null && signalExternalWorkflowExecutionDecisionAttributes.IsSetWorkflowId()) { writer.WritePropertyName("workflowId"); writer.Write(signalExternalWorkflowExecutionDecisionAttributes.WorkflowId); } if (signalExternalWorkflowExecutionDecisionAttributes != null && signalExternalWorkflowExecutionDecisionAttributes.IsSetRunId()) { writer.WritePropertyName("runId"); writer.Write(signalExternalWorkflowExecutionDecisionAttributes.RunId); } if (signalExternalWorkflowExecutionDecisionAttributes != null && signalExternalWorkflowExecutionDecisionAttributes.IsSetSignalName()) { writer.WritePropertyName("signalName"); writer.Write(signalExternalWorkflowExecutionDecisionAttributes.SignalName); } if (signalExternalWorkflowExecutionDecisionAttributes != null && signalExternalWorkflowExecutionDecisionAttributes.IsSetInput()) { writer.WritePropertyName("input"); writer.Write(signalExternalWorkflowExecutionDecisionAttributes.Input); } if (signalExternalWorkflowExecutionDecisionAttributes != null && signalExternalWorkflowExecutionDecisionAttributes.IsSetControl()) { writer.WritePropertyName("control"); writer.Write(signalExternalWorkflowExecutionDecisionAttributes.Control); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { RequestCancelExternalWorkflowExecutionDecisionAttributes requestCancelExternalWorkflowExecutionDecisionAttributes = decisionsListValue.RequestCancelExternalWorkflowExecutionDecisionAttributes; if (requestCancelExternalWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("requestCancelExternalWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (requestCancelExternalWorkflowExecutionDecisionAttributes != null && requestCancelExternalWorkflowExecutionDecisionAttributes.IsSetWorkflowId()) { writer.WritePropertyName("workflowId"); writer.Write(requestCancelExternalWorkflowExecutionDecisionAttributes.WorkflowId); } if (requestCancelExternalWorkflowExecutionDecisionAttributes != null && requestCancelExternalWorkflowExecutionDecisionAttributes.IsSetRunId()) { writer.WritePropertyName("runId"); writer.Write(requestCancelExternalWorkflowExecutionDecisionAttributes.RunId); } if (requestCancelExternalWorkflowExecutionDecisionAttributes != null && requestCancelExternalWorkflowExecutionDecisionAttributes.IsSetControl()) { writer.WritePropertyName("control"); writer.Write(requestCancelExternalWorkflowExecutionDecisionAttributes.Control); } writer.WriteObjectEnd(); } } if (decisionsListValue != null) { StartChildWorkflowExecutionDecisionAttributes startChildWorkflowExecutionDecisionAttributes = decisionsListValue.StartChildWorkflowExecutionDecisionAttributes; if (startChildWorkflowExecutionDecisionAttributes != null) { writer.WritePropertyName("startChildWorkflowExecutionDecisionAttributes"); writer.WriteObjectStart(); if (startChildWorkflowExecutionDecisionAttributes != null) { WorkflowType workflowType = startChildWorkflowExecutionDecisionAttributes.WorkflowType; if (workflowType != null) { writer.WritePropertyName("workflowType"); writer.WriteObjectStart(); if (workflowType != null && workflowType.IsSetName()) { writer.WritePropertyName("name"); writer.Write(workflowType.Name); } if (workflowType != null && workflowType.IsSetVersion()) { writer.WritePropertyName("version"); writer.Write(workflowType.Version); } writer.WriteObjectEnd(); } } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.IsSetWorkflowId()) { writer.WritePropertyName("workflowId"); writer.Write(startChildWorkflowExecutionDecisionAttributes.WorkflowId); } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.IsSetControl()) { writer.WritePropertyName("control"); writer.Write(startChildWorkflowExecutionDecisionAttributes.Control); } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.IsSetInput()) { writer.WritePropertyName("input"); writer.Write(startChildWorkflowExecutionDecisionAttributes.Input); } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.IsSetExecutionStartToCloseTimeout()) { writer.WritePropertyName("executionStartToCloseTimeout"); writer.Write(startChildWorkflowExecutionDecisionAttributes.ExecutionStartToCloseTimeout); } if (startChildWorkflowExecutionDecisionAttributes != null) { TaskList taskList = startChildWorkflowExecutionDecisionAttributes.TaskList; if (taskList != null) { writer.WritePropertyName("taskList"); writer.WriteObjectStart(); if (taskList != null && taskList.IsSetName()) { writer.WritePropertyName("name"); writer.Write(taskList.Name); } writer.WriteObjectEnd(); } } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.IsSetTaskStartToCloseTimeout()) { writer.WritePropertyName("taskStartToCloseTimeout"); writer.Write(startChildWorkflowExecutionDecisionAttributes.TaskStartToCloseTimeout); } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.IsSetChildPolicy()) { writer.WritePropertyName("childPolicy"); writer.Write(startChildWorkflowExecutionDecisionAttributes.ChildPolicy); } if (startChildWorkflowExecutionDecisionAttributes != null && startChildWorkflowExecutionDecisionAttributes.TagList != null && startChildWorkflowExecutionDecisionAttributes.TagList.Count > 0) { List <string> tagListList = startChildWorkflowExecutionDecisionAttributes.TagList; writer.WritePropertyName("tagList"); writer.WriteArrayStart(); foreach (string tagListListValue in tagListList) { writer.Write(StringUtils.FromString(tagListListValue)); } writer.WriteArrayEnd(); } writer.WriteObjectEnd(); } } writer.WriteObjectEnd(); } writer.WriteArrayEnd(); } if (respondDecisionTaskCompletedRequest != null && respondDecisionTaskCompletedRequest.IsSetExecutionContext()) { writer.WritePropertyName("executionContext"); writer.Write(respondDecisionTaskCompletedRequest.ExecutionContext); } writer.WriteObjectEnd(); string snippet = stringWriter.ToString(); request.Content = System.Text.Encoding.UTF8.GetBytes(snippet); } return(request); }