From 9b5bad71c83f54ea1b3a3d0d6f888cfcfc500890 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Mon, 3 May 2021 12:55:57 +0200 Subject: [PATCH] Update workflow builder to enable developer to specify latest & published state --- .../Elsa.Abstractions/Builders/IWorkflowBuilder.cs | 2 +- .../Elsa.Core/Builders/CompositeActivityBuilder.cs | 2 +- src/core/Elsa.Core/Builders/WorkflowBuilder.cs | 12 +++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/core/Elsa.Abstractions/Builders/IWorkflowBuilder.cs b/src/core/Elsa.Abstractions/Builders/IWorkflowBuilder.cs index 7db02f8c6..251591d6d 100644 --- a/src/core/Elsa.Abstractions/Builders/IWorkflowBuilder.cs +++ b/src/core/Elsa.Abstractions/Builders/IWorkflowBuilder.cs @@ -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(WorkflowContextFidelity fidelity = WorkflowContextFidelity.Burst); diff --git a/src/core/Elsa.Core/Builders/CompositeActivityBuilder.cs b/src/core/Elsa.Core/Builders/CompositeActivityBuilder.cs index 845153c5e..9bea549c1 100644 --- a/src/core/Elsa.Core/Builders/CompositeActivityBuilder.cs +++ b/src/core/Elsa.Core/Builders/CompositeActivityBuilder.cs @@ -178,7 +178,7 @@ namespace Elsa.Builders var connections = new List(); var activityPropertyProviders = new Dictionary>(); - // Assign automatic ids to activity builders + // Assign automatic ids to activity builders. var index = 0; foreach (var activityBuilder in activityBuilders) diff --git a/src/core/Elsa.Core/Builders/WorkflowBuilder.cs b/src/core/Elsa.Core/Builders/WorkflowBuilder.cs index cfa41ee51..0aa56c058 100644 --- a/src/core/Elsa.Core/Builders/WorkflowBuilder.cs +++ b/src/core/Elsa.Core/Builders/WorkflowBuilder.cs @@ -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,