public sealed override async Task <string> Execute(OrchestrationContext context, string input) { context.MessageDataConverter = new TypelessJsonDataConverter(); context.ErrorDataConverter = new TypelessJsonDataConverter(); Context = context; EventReceiver = new OrchestrationEventReceiver(context); GuidGenerator = new OrchestrationGuidGenerator(context.OrchestrationInstance.ExecutionId); var parameter = DataConverter.Deserialize <TInput>(input); string serializedResult; try { var result = await Execute(parameter); serializedResult = DataConverter.Serialize(result); } catch (Exception e) when(!DUtils.IsFatal(e) && !DUtils.IsExecutionAborting(e)) { var details = DUtils.SerializeCause(e, DataConverter); throw new OrchestrationFailureException(e.Message, details); } return(serializedResult); }
public OrchestrationEventListener( OrchestrationEventReceiver eventReceiver, Action <string, string> handler) { _eventReceiver = eventReceiver; _handler = handler; _eventReceiver.Event += _handler; }