Update workflow builder to enable developer to specify latest & published state

This commit is contained in:
Sipke Schoorstra 2021-05-03 12:55:57 +02:00
parent 958b6c3d20
commit 9b5bad71c8
3 changed files with 11 additions and 5 deletions

View file

@ -13,7 +13,7 @@ namespace Elsa.Builders
WorkflowPersistenceBehavior PersistenceBehavior { get; }
bool DeleteCompletedInstances { get; }
IWorkflowBuilder WithWorkflowDefinitionId(string value);
IWorkflowBuilder WithVersion(int value);
IWorkflowBuilder WithVersion(int value, bool isLatest = true, bool isPublished = true);
IWorkflowBuilder AsSingleton();
IWorkflowBuilder AsTransient();
IWorkflowBuilder WithContextType<T>(WorkflowContextFidelity fidelity = WorkflowContextFidelity.Burst);

View file

@ -178,7 +178,7 @@ namespace Elsa.Builders
var connections = new List<IConnection>();
var activityPropertyProviders = new Dictionary<string, IDictionary<string, IActivityPropertyValueProvider>>();
// Assign automatic ids to activity builders
// Assign automatic ids to activity builders.
var index = 0;
foreach (var activityBuilder in activityBuilders)

View file

@ -14,6 +14,8 @@ namespace Elsa.Builders
public WorkflowBuilder(IIdGenerator idGenerator, IServiceProvider serviceProvider, IGetsStartActivitiesForCompositeActivityBlueprint startingActivitiesProvider) : base(serviceProvider, startingActivitiesProvider)
{
Version = 1;
IsLatest = true;
IsPublished = true;
Variables = new Variables();
CustomAttributes = new Variables();
ActivityId = idGenerator.Generate();
@ -25,6 +27,8 @@ namespace Elsa.Builders
}
public int Version { get; private set; }
public bool IsLatest { get; private set; }
public bool IsPublished { get; private set; }
public string? TenantId { get; private set; }
public bool IsSingleton { get; private set; }
public string? Tag { get; private set; }
@ -75,9 +79,11 @@ namespace Elsa.Builders
return this;
}
public IWorkflowBuilder WithVersion(int value)
public IWorkflowBuilder WithVersion(int value, bool isLatest = true, bool isPublished = true)
{
Version = value;
IsLatest = isLatest;
isPublished = isPublished;
return this;
}
@ -161,8 +167,8 @@ namespace Elsa.Builders
Name,
DisplayName,
Description,
true,
true,
IsLatest,
IsPublished,
Tag,
Variables,
CustomAttributes,