Generate default instance ID
This commit is contained in:
parent
9230696707
commit
78aa011df8
|
|
@ -1,29 +1,39 @@
|
|||
using Elsa.Workflows.Core.Activities;
|
||||
using Elsa.Workflows.Core.Contracts;
|
||||
using Elsa.Workflows.Core.State;
|
||||
using Elsa.Workflows.Runtime.Contracts;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Elsa.Workflows.Runtime.Services;
|
||||
|
||||
/// <inheritdoc />
|
||||
public class WorkflowHostFactory : IWorkflowHostFactory
|
||||
{
|
||||
private readonly IIdentityGenerator _identityGenerator;
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
|
||||
public WorkflowHostFactory(IServiceProvider serviceProvider)
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="WorkflowHostFactory"/> class.
|
||||
/// </summary>
|
||||
public WorkflowHostFactory(IIdentityGenerator identityGenerator, IServiceProvider serviceProvider)
|
||||
{
|
||||
_identityGenerator = identityGenerator;
|
||||
_serviceProvider = serviceProvider;
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<IWorkflowHost> CreateAsync(Workflow workflow, WorkflowState workflowState, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var workflowHost = (IWorkflowHost)ActivatorUtilities.CreateInstance<WorkflowHost>(_serviceProvider, workflow, workflowState);
|
||||
return Task.FromResult(workflowHost);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public Task<IWorkflowHost> CreateAsync(Workflow workflow, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var workflowState = new WorkflowState
|
||||
{
|
||||
Id = _identityGenerator.GenerateId(),
|
||||
DefinitionId = workflow.Identity.DefinitionId,
|
||||
DefinitionVersion = workflow.Identity.Version
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue