public void HandleSubOrchestrationInstanceFailedEvent(SubOrchestrationInstanceFailedEvent failedEvent) { int taskId = failedEvent.TaskScheduledId; if (this.openTasks.ContainsKey(taskId)) { OpenTaskInfo info = this.openTasks[taskId]; // When using ErrorPropagationMode.SerializeExceptions the "cause" is deserialized from history. // This isn't fully reliable because not all exception types can be serialized/deserialized. // When using ErrorPropagationMode.UseFailureDetails we instead use FailureDetails to convey // error information, which doesn't involve any serialization at all. Exception cause = this.ErrorPropagationMode == ErrorPropagationMode.SerializeExceptions ? Utils.RetrieveCause(failedEvent.Details, this.ErrorDataConverter) : null; var failedException = new SubOrchestrationFailedException(failedEvent.EventId, taskId, info.Name, info.Version, failedEvent.Reason, cause); failedException.FailureDetails = failedEvent.FailureDetails; TaskCompletionSource <string> tcs = info.Result; tcs.SetException(failedException); this.openTasks.Remove(taskId); } else { LogDuplicateEvent("SubOrchestrationInstanceFailed", failedEvent, taskId); } }
public void HandleTimerFiredEvent(TimerFiredEvent timerFiredEvent) { int taskId = timerFiredEvent.TimerId; if (openTasks.ContainsKey(taskId)) { OpenTaskInfo info = openTasks[taskId]; info.Result.SetResult(timerFiredEvent.TimerId.ToString()); openTasks.Remove(taskId); } }
public void HandleSubOrchestrationInstanceCompletedEvent(SubOrchestrationInstanceCompletedEvent completedEvent) { int taskId = completedEvent.TaskScheduledId; if (openTasks.ContainsKey(taskId)) { OpenTaskInfo info = openTasks[taskId]; info.Result.SetResult(completedEvent.Result); openTasks.Remove(taskId); } }
public void HandleTimerFiredEvent(TimerFiredEvent timerFiredEvent) { int taskId = timerFiredEvent.TimerId; if (this.openTasks.ContainsKey(taskId)) { OpenTaskInfo info = this.openTasks[taskId]; info.Result.SetResult(timerFiredEvent.TimerId.ToString()); this.openTasks.Remove(taskId); } else { LogDuplicateEvent("TimerFired", timerFiredEvent, taskId); } }
public void HandleTaskCompletedEvent(TaskCompletedEvent completedEvent) { int taskId = completedEvent.TaskScheduledId; if (openTasks.ContainsKey(taskId)) { OpenTaskInfo info = openTasks[taskId]; info.Result.SetResult(completedEvent.Result); openTasks.Remove(taskId); } else { LogDuplicateEvent("TaskCompleted", completedEvent, taskId); } }
public void HandleSubOrchestrationInstanceCompletedEvent(SubOrchestrationInstanceCompletedEvent completedEvent) { int taskId = completedEvent.TaskScheduledId; if (this.openTasks.ContainsKey(taskId)) { OpenTaskInfo info = this.openTasks[taskId]; info.Result.SetResult(completedEvent.Result); this.openTasks.Remove(taskId); } else { LogDuplicateEvent("SubOrchestrationInstanceCompleted", completedEvent, taskId); } }
public void HandleSubOrchestrationInstanceFailedEvent(SubOrchestrationInstanceFailedEvent failedEvent) { int taskId = failedEvent.TaskScheduledId; if (openTasks.ContainsKey(taskId)) { OpenTaskInfo info = openTasks[taskId]; Exception cause = Utils.RetrieveCause(failedEvent.Details, dataConverter); var failedException = new SubOrchestrationFailedException(failedEvent.EventId, taskId, info.Name, info.Version, failedEvent.Reason, cause); TaskCompletionSource <string> tcs = info.Result; tcs.SetException(failedException); openTasks.Remove(taskId); } }
public void HandleTaskFailedEvent(TaskFailedEvent failedEvent) { int taskId = failedEvent.TaskScheduledId; if (openTasks.ContainsKey(taskId)) { OpenTaskInfo info = openTasks[taskId]; Exception cause = Utils.RetrieveCause(failedEvent.Details, dataConverter); var taskFailedException = new TaskFailedException(failedEvent.EventId, taskId, info.Name, info.Version, failedEvent.Reason, cause); TaskCompletionSource <string> tcs = info.Result; tcs.SetException(taskFailedException); openTasks.Remove(taskId); } else { LogDuplicateEvent("TaskFailed", failedEvent, taskId); } }