static TaskMessage ProcessScheduleTaskDecision( ScheduleTaskOrchestratorAction scheduleTaskOrchestratorAction, OrchestrationRuntimeState runtimeState, bool includeParameters) { var taskMessage = new TaskMessage(); var scheduledEvent = new TaskScheduledEvent(scheduleTaskOrchestratorAction.Id) { Name = scheduleTaskOrchestratorAction.Name, Version = scheduleTaskOrchestratorAction.Version, Input = scheduleTaskOrchestratorAction.Input }; taskMessage.Event = scheduledEvent; taskMessage.OrchestrationInstance = runtimeState.OrchestrationInstance; if (!includeParameters) { scheduledEvent = new TaskScheduledEvent(scheduleTaskOrchestratorAction.Id) { Name = scheduleTaskOrchestratorAction.Name, Version = scheduleTaskOrchestratorAction.Version }; } runtimeState.AddEvent(scheduledEvent); return(taskMessage); }
public async Task <object> ScheduleTaskInternal(string name, string version, string tasklist, Type resultType, params object[] parameters) { int id = idCounter++; string serializedInput = dataConverter.Serialize(parameters); var scheduleTaskTaskAction = new ScheduleTaskOrchestratorAction { Id = id, Name = name, Version = version, Tasklist = tasklist, Input = serializedInput, }; orchestratorActionsMap.Add(id, scheduleTaskTaskAction); var tcs = new TaskCompletionSource <string>(); openTasks.Add(id, new OpenTaskInfo { Name = name, Version = version, Result = tcs }); string serializedResult = await tcs.Task; return(dataConverter.Deserialize(serializedResult, resultType)); }