/// <summary>
 /// Initializes a new <see cref="WorkflowRuntime"/>
 /// </summary>
 /// <param name="logger">The service used to perform logging</param>
 /// <param name="hostApplicationLifetime">The service used to handle the lifetime of the <see cref="WorkflowRuntime"/>'s host application</param>
 /// <param name="integrationEventBus">The service used to publish and subscribe to integration events</param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="synapseRuntimeApi">The service used to interact with the Synapse Runtime API</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 public WorkflowRuntime(ILogger <WorkflowRuntime> logger, IHostApplicationLifetime hostApplicationLifetime, IIntegrationEventBus integrationEventBus,
                        IWorkflowActivityProcessorFactory activityProcessorFactory, ISynapseRuntimeApi synapseRuntimeApi, IWorkflowRuntimeContext context)
 {
     this.Logger = logger;
     this.HostApplicationLifetime  = hostApplicationLifetime;
     this.IntegrationEventBus      = integrationEventBus;
     this.ActivityProcessorFactory = activityProcessorFactory;
     this.RuntimeApi = synapseRuntimeApi;
     this.Context    = context;
     this.CancellationTokenSource = null !;
 }
 /// <inheritdoc/>
 public OperationStateProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                                IJsonSerializer jsonSerializer, IOptions <ApplicationOptions> options, V1WorkflowActivity activity, OperationStateDefinition state)
     : base(loggerFactory, context, activityProcessorFactory, options, activity, state)
 {
     this.JsonSerializer = jsonSerializer;
 }
Example #3
0
 /// <summary>
 /// Initializes a new <see cref="WorkflowActivityProcessor"/>
 /// </summary>
 /// <param name="serviceProvider">The current <see cref="IServiceProvider"/></param>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="action">The <see cref="ActionDefinition"/> to process</param>
 /// <param name="function">The <see cref="FunctionDefinition"/> to process</param>
 public FunctionProcessor(IServiceProvider serviceProvider, ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                          IOptions <ApplicationOptions> options, V1WorkflowActivity activity, ActionDefinition action, FunctionDefinition function)
     : base(loggerFactory, context, activityProcessorFactory, options, activity, action)
 {
     this.ServiceProvider = serviceProvider;
     this.Function        = function;
 }
 /// <summary>
 /// Initializes a new <see cref="StateProcessor"/>
 /// </summary>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="state">The <see cref="StateDefinition"/> to process</param>
 protected StateProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory, IOptions <ApplicationOptions> options, V1WorkflowActivity activity, StateDefinition state)
     : base(loggerFactory, context, activityProcessorFactory, options, activity)
 {
     this.State = state;
 }
Example #5
0
 /// <summary>
 /// Initializes a new <see cref="TransitionProcessor"/>
 /// </summary>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="state">The <see cref="StateDefinition"/> to process the transition of</param>
 /// <param name="transition">The <see cref="TransitionDefinition"/> to process</param>
 public TransitionProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                            IOptions <ApplicationOptions> options, V1WorkflowActivity activity, StateDefinition state, TransitionDefinition transition)
     : base(loggerFactory, context, activityProcessorFactory, options, activity)
 {
     this.State      = state;
     this.Transition = transition;
 }
Example #6
0
 /// <summary>
 /// Initializes a new <see cref="WorkflowActivityProcessor"/>
 /// </summary>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="jsonSerializer">The service used to serialize/deserialize to/from JSON</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="state">The <see cref="ForEachStateDefinition"/> that defines the iteration to process</param>
 /// <param name="iterationIndex">The index of the iteration to process</param>
 public IterationProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                           IJsonSerializer jsonSerializer, IOptions <ApplicationOptions> options, V1WorkflowActivity activity, ForEachStateDefinition state, int iterationIndex)
     : base(loggerFactory, context, activityProcessorFactory, options, activity)
 {
     this.JsonSerializer = jsonSerializer;
     this.State          = state;
     this.IterationIndex = iterationIndex;
 }
Example #7
0
 /// <summary>
 /// Initializes a new <see cref="RuntimeExpressionFunctionProcessor"/>
 /// </summary>
 /// <param name="serviceProvider">The current <see cref="IServiceProvider"/></param>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="action">The <see cref="ActionDefinition"/> to process</param>
 /// <param name="function">The <see cref="FunctionDefinition"/> to process</param>
 public RuntimeExpressionFunctionProcessor(IServiceProvider serviceProvider, ILoggerFactory loggerFactory, IWorkflowRuntimeContext context,
                                           IWorkflowActivityProcessorFactory activityProcessorFactory, IOptions <ApplicationOptions> options, V1WorkflowActivity activity,
                                           ActionDefinition action, FunctionDefinition function)
     : base(serviceProvider, loggerFactory, context, activityProcessorFactory, options, activity, action, function)
 {
 }
Example #8
0
 /// <inheritdoc/>
 public ForEachStateProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                              IOptions <ApplicationOptions> options, V1WorkflowActivity activity, ForEachStateDefinition state)
     : base(loggerFactory, context, activityProcessorFactory, options, activity, state)
 {
 }
 /// <summary>
 /// Initializes a new <see cref="WorkflowActivityProcessor"/>
 /// </summary>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 protected WorkflowActivityProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory, IOptions <ApplicationOptions> options, V1WorkflowActivity activity)
 {
     this.Logger  = loggerFactory.CreateLogger(this.GetType());
     this.Context = context;
     this.ActivityProcessorFactory = activityProcessorFactory;
     this.Options  = options.Value;
     this.Activity = activity;
 }
Example #10
0
 /// <summary>
 /// Initializes a new <see cref="WorkflowActivityProcessor"/>
 /// </summary>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="jsonSerializer">The service used to serialize/deserialize to/from JSON</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="state">The <see cref="EventStateDefinition"/> to process</param>
 /// <param name="trigger">The <see cref="EventStateTriggerDefinition"/> to process</param>
 public EventStateTriggerProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory, IJsonSerializer jsonSerializer,
                                   IOptions <ApplicationOptions> options, V1WorkflowActivity activity, EventStateDefinition state, EventStateTriggerDefinition trigger)
     : base(loggerFactory, context, activityProcessorFactory, options, activity)
 {
     this.JsonSerializer = jsonSerializer;
     this.State          = state;
     this.Trigger        = trigger;
 }
 /// <inheritdoc/>
 public EndProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                     IOptions <ApplicationOptions> options, V1WorkflowActivity activity, EndDefinition end)
     : base(loggerFactory, context, activityProcessorFactory, options, activity)
 {
     this.End = end;
 }
 /// <summary>
 /// Initializes a new <see cref="AsyncApiFunctionProcessor"/>
 /// </summary>
 /// <param name="serviceProvider">The current <see cref="ISerializerProvider"/></param>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="httpClientFactory">The service used to created <see cref="System.Net.Http.HttpClient"/>s</param>
 /// <param name="asyncApiReader">The service used to read <see cref="AsyncApiDocument"/>s</param>
 /// <param name="asyncApiClientFactory">The service used to create <see cref="IAsyncApiClient"/>s</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="action">The <see cref="ActionDefinition"/> to process</param>
 /// <param name="function">The <see cref="FunctionDefinition"/> to process</param>
 public AsyncApiFunctionProcessor(IServiceProvider serviceProvider, ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                                  IHttpClientFactory httpClientFactory, IAsyncApiDocumentReader asyncApiReader, IAsyncApiClientFactory asyncApiClientFactory, IOptions <ApplicationOptions> options, V1WorkflowActivity activity,
                                  ActionDefinition action, FunctionDefinition function)
     : base(serviceProvider, loggerFactory, context, activityProcessorFactory, options, activity, action, function)
 {
     this.HttpClient            = httpClientFactory.CreateClient();
     this.AsyncApiReader        = asyncApiReader;
     this.AsyncApiClientFactory = asyncApiClientFactory;
 }
 /// <summary>
 /// Initializes a new <see cref="AsyncFunctionProcessor"/>
 /// </summary>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="state">The <see cref="StateDefinition"/> the <see cref="EventReference"/> to process belongs to</param>
 /// <param name="action">The <see cref="ActionDefinition"/> to process</param>
 /// <param name="triggerEvent">The <see cref="EventDefinition"/> that defines the <see cref="CloudEvent"/> to produce, thus triggering the async call</param>
 /// <param name="resultEvent">The <see cref="EventDefinition"/> that defines the <see cref="CloudEvent"/> to consume, thus ending the async call</param>
 public AsyncFunctionProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                               IOptions <ApplicationOptions> options, V1WorkflowActivity activity, StateDefinition state, ActionDefinition action, EventDefinition triggerEvent, EventDefinition resultEvent)
     : base(loggerFactory, context, activityProcessorFactory, options, activity, action)
 {
     this.State        = state;
     this.TriggerEvent = triggerEvent;
     this.ResultEvent  = resultEvent;
 }
Example #14
0
 /// <summary>
 /// Initializes a new <see cref="ODataFunctionProcessor"/>
 /// </summary>
 /// <param name="serviceProvider">The current <see cref="IServiceProvider"/></param>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="httpClientFactory">The service used to create <see cref="System.Net.Http.HttpClient"/>s</param>
 /// <param name="serializerProvider">The service used to provide <see cref="ISerializer"/>s</param>
 /// <param name="oauth2TokenManager">The service used to manahge <see cref="OAuth2Token"/>s</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="action">The <see cref="ActionDefinition"/> to process</param>
 /// <param name="function">The <see cref="FunctionDefinition"/> to process</param>
 public ODataFunctionProcessor(IServiceProvider serviceProvider, ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                               IHttpClientFactory httpClientFactory, ISerializerProvider serializerProvider, IOptions <ApplicationOptions> options, V1WorkflowActivity activity,
                               ActionDefinition action, FunctionDefinition function)
     : base(serviceProvider, loggerFactory, context, activityProcessorFactory, options, activity, action, function)
 {
     this.HttpClient         = httpClientFactory.CreateClient();
     this.SerializerProvider = serializerProvider;
 }
Example #15
0
 /// <summary>
 /// Initializes a new <see cref="SubflowProcessor"/>
 /// </summary>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="integrationEventBus">The service used to publish and subscribe to integration events</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="state">The <see cref="StateDefinition"/> the <see cref="SubflowReference"/> to process belongs to</param>
 /// <param name="action">The <see cref="ActionDefinition"/> to process</param>
 public SubflowProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                         IIntegrationEventBus integrationEventBus, IOptions <ApplicationOptions> options, V1WorkflowActivity activity, StateDefinition state, ActionDefinition action)
     : base(loggerFactory, context, activityProcessorFactory, options, activity, action)
 {
     this.IntegrationEventBus = integrationEventBus;
     this.State = state;
 }
Example #16
0
 /// <summary>
 /// Initializes a new <see cref="WorkflowActivityProcessor"/>
 /// </summary>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="jsonSerializer">The service used to serialize/deserialize to/from JSON</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="state">The <see cref="ParallelStateDefinition"/> that defines the <see cref="BranchDefinition"/> to process</param>
 /// <param name="branch">The <see cref="BranchDefinition"/> to process</param>
 public BranchProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                        IJsonSerializer jsonSerializer, IOptions <ApplicationOptions> options, V1WorkflowActivity activity, ParallelStateDefinition state, BranchDefinition branch)
     : base(loggerFactory, context, activityProcessorFactory, options, activity)
 {
     this.JsonSerializer = jsonSerializer;
     this.State          = state;
     this.Branch         = branch;
 }
 /// <inheritdoc/>
 public StartProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                       IOptions <ApplicationOptions> options, V1WorkflowActivity activity, StartDefinition start)
     : base(loggerFactory, context, activityProcessorFactory, options, activity)
 {
     this.Start = start;
 }
 /// <summary>
 /// Initializes a new <see cref="WorkflowActivityProcessor"/>
 /// </summary>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="integrationEventBus">The service used to publish and subscribe to integration events</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="eventDefinition">The <see cref="ServerlessWorkflow.Sdk.Models.EventDefinition"/> that defines the <see cref="V1Event"/> to consume</param>
 public ConsumeEventProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                              IIntegrationEventBus integrationEventBus, IOptions <ApplicationOptions> options, V1WorkflowActivity activity, EventDefinition eventDefinition)
     : base(loggerFactory, context, activityProcessorFactory, options, activity)
 {
     this.IntegrationEventBus = integrationEventBus;
     this.EventDefinition     = eventDefinition;
 }
 /// <summary>
 /// Initializes a new <see cref="WorkflowActivityProcessor"/>
 /// </summary>
 /// <param name="loggerFactory">The service used to create <see cref="ILogger"/>s</param>
 /// <param name="context">The current <see cref="IWorkflowRuntimeContext"/></param>
 /// <param name="activityProcessorFactory">The service used to create <see cref="IWorkflowActivityProcessor"/>s</param>
 /// <param name="options">The service used to access the current <see cref="ApplicationOptions"/></param>
 /// <param name="activity">The <see cref="V1WorkflowActivity"/> to process</param>
 /// <param name="action">The <see cref="ActionDefinition"/> to process</param>
 protected ActionProcessor(ILoggerFactory loggerFactory, IWorkflowRuntimeContext context, IWorkflowActivityProcessorFactory activityProcessorFactory,
                           IOptions <ApplicationOptions> options, V1WorkflowActivity activity, ActionDefinition action)
     : base(loggerFactory, context, activityProcessorFactory, options, activity)
 {
     this.Action = action;
 }