From 49da22fb8ecdbff0d11c887ec71a5de4be6c9af8 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Thu, 6 Jul 2023 18:06:18 +0200 Subject: [PATCH] Add ToolVersion field to workflow definition --- src/clients/Elsa.Api.Client/Activities/Activity.cs | 11 ++++++++++- .../Models/WorkflowDefinitionModel.cs | 2 ++ .../Elsa.Workflows.Core/Contracts/IActivity.cs | 5 +++++ src/modules/Elsa.Workflows.Core/Models/Activity.cs | 3 +++ .../Models/WorkflowDefinitionSummary.cs | 6 ++++++ 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/clients/Elsa.Api.Client/Activities/Activity.cs b/src/clients/Elsa.Api.Client/Activities/Activity.cs index d325a573b..8f04426eb 100644 --- a/src/clients/Elsa.Api.Client/Activities/Activity.cs +++ b/src/clients/Elsa.Api.Client/Activities/Activity.cs @@ -3,7 +3,7 @@ using Elsa.Api.Client.Extensions; namespace Elsa.Api.Client.Activities; /// -/// Represents an activity in a workflow definition. +/// Represents an activity. /// public class Activity : Dictionary { @@ -15,6 +15,15 @@ public class Activity : Dictionary get => this.TryGetValue("id")!; set => this["id"] = value; } + + /// + /// Gets or sets the name of this activity. + /// + public string? Name + { + get => this.TryGetValue("name")!; + set => this["name"] = value!; + } /// /// Gets or sets the type of this activity. diff --git a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/WorkflowDefinitionModel.cs b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/WorkflowDefinitionModel.cs index edc93e786..45b1dbebc 100644 --- a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/WorkflowDefinitionModel.cs +++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/WorkflowDefinitionModel.cs @@ -30,6 +30,7 @@ public record WorkflowDefinitionModel( string? Description, DateTimeOffset CreatedAt, int Version, + Version? ToolVersion, ICollection? Variables, ICollection? Inputs, ICollection? Outputs, @@ -59,6 +60,7 @@ public record WorkflowDefinitionModel( default!, default!, default!, + default!, default!) { } diff --git a/src/modules/Elsa.Workflows.Core/Contracts/IActivity.cs b/src/modules/Elsa.Workflows.Core/Contracts/IActivity.cs index 590f0e367..8f45554e8 100644 --- a/src/modules/Elsa.Workflows.Core/Contracts/IActivity.cs +++ b/src/modules/Elsa.Workflows.Core/Contracts/IActivity.cs @@ -13,6 +13,11 @@ public interface IActivity /// string Id { get; set; } + /// + /// An optional name by which the activity can be referenced. + /// + string? Name { get; set; } + /// /// The logical type name of the activity. /// diff --git a/src/modules/Elsa.Workflows.Core/Models/Activity.cs b/src/modules/Elsa.Workflows.Core/Models/Activity.cs index d59ad5171..389988513 100644 --- a/src/modules/Elsa.Workflows.Core/Models/Activity.cs +++ b/src/modules/Elsa.Workflows.Core/Models/Activity.cs @@ -35,6 +35,9 @@ public abstract class Activity : IActivity, ISignalHandler /// public string Id { get; set; } = default!; + + /// + public string? Name { get; set; } /// public string Type { get; set; } diff --git a/src/modules/Elsa.Workflows.Management/Models/WorkflowDefinitionSummary.cs b/src/modules/Elsa.Workflows.Management/Models/WorkflowDefinitionSummary.cs index d2227d3c1..72710bfd8 100644 --- a/src/modules/Elsa.Workflows.Management/Models/WorkflowDefinitionSummary.cs +++ b/src/modules/Elsa.Workflows.Management/Models/WorkflowDefinitionSummary.cs @@ -19,6 +19,7 @@ public class WorkflowDefinitionSummary Name = workflowDefinition.Name, Description = workflowDefinition.Description, Version = workflowDefinition.Version, + ToolVersion = workflowDefinition.ToolVersion, IsLatest = workflowDefinition.IsLatest, IsPublished = workflowDefinition.IsPublished, ProviderName = workflowDefinition.ProviderName, @@ -51,6 +52,11 @@ public class WorkflowDefinitionSummary /// public int? Version { get; set; } + /// + /// The version of the tool that created the workflow definition. + /// + public Version? ToolVersion { get; set; } + /// /// Whether this is the latest version of the workflow definition. ///