diff --git a/src/activities/Elsa.Activities.Http.OpenApi/Elsa.Activities.Http.OpenApi.csproj b/src/activities/Elsa.Activities.Http.OpenApi/Elsa.Activities.Http.OpenApi.csproj
index 3f5a9045e4..c9683ddf2e 100644
--- a/src/activities/Elsa.Activities.Http.OpenApi/Elsa.Activities.Http.OpenApi.csproj
+++ b/src/activities/Elsa.Activities.Http.OpenApi/Elsa.Activities.Http.OpenApi.csproj
@@ -19,17 +19,22 @@
-
+
-
-
+
+
+
+
+
+
-
- compile
-
+
+
+ compile
+
diff --git a/src/activities/Elsa.Activities.Http.OpenApi/HttpEndpointDocumentFilter.cs b/src/activities/Elsa.Activities.Http.OpenApi/HttpEndpointDocumentFilter.cs
index c3f52b292a..3ae7eaee0b 100644
--- a/src/activities/Elsa.Activities.Http.OpenApi/HttpEndpointDocumentFilter.cs
+++ b/src/activities/Elsa.Activities.Http.OpenApi/HttpEndpointDocumentFilter.cs
@@ -1,4 +1,4 @@
-using System.Runtime.CompilerServices;
+using System.Runtime.CompilerServices;
using Elsa.Activities.Http.Bookmarks;
using Elsa.Activities.Http.Options;
using Elsa.Models;
@@ -7,7 +7,11 @@
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
+#if NET10_0_OR_GREATER
+using Microsoft.OpenApi;
+#else
using Microsoft.OpenApi.Models;
+#endif
using Open.Linq.AsyncExtensions;
using Swashbuckle.AspNetCore.SwaggerGen;
@@ -31,12 +35,16 @@ public HttpEndpointDocumentFilter(IServiceScopeFactory scopeFactory, ISchemaGene
public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context)
{
+#if NET10_0_OR_GREATER
+ swaggerDoc.Tags ??= new HashSet();
+#else
swaggerDoc.Tags ??= new List();
+#endif
var tag = new OpenApiTag
{
Name = "Workflow Endpoints",
- Description = "A collection of HTTP endpoints exposed by workflows",
+ Description = "A collection of HTTP endpoints exposed by workflows"
};
var schemaRepository = context.SchemaRepository;
@@ -55,17 +63,21 @@ public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context)
Description = first.Description,
Operations = grouping.ToDictionary(GetOperationType, httpEndpoint =>
{
- var operation = new OpenApiOperation
- {
- Tags = { tag },
- };
+ var operation = new OpenApiOperation();
+
+#if NET10_0_OR_GREATER
+ operation.Tags ??= new HashSet();
+ operation.Tags.Add(new OpenApiTagReference(tag.Name, swaggerDoc));
+#else
+ operation.Tags.Add(tag);
+#endif
- if (httpEndpoint.TargetType != null || httpEndpoint.JsonSchema != null)
+ if (httpEndpoint.TargetType != null || !string.IsNullOrWhiteSpace(httpEndpoint.JsonSchema))
{
operation.RequestBody = new OpenApiRequestBody
{
Required = true,
- Content =
+ Content = new Dictionary
{
["Unspecified"] = new OpenApiMediaType
{
@@ -126,6 +138,21 @@ private async Task GetHttpEndpointDescriptor(
return new HttpEndpointDescriptor(activityId, path, method, displayName, description, targetType, schema);
}
+#if NET10_0_OR_GREATER
+ private HttpMethod GetOperationType(HttpEndpointDescriptor httpEndpoint) =>
+ httpEndpoint.Method switch
+ {
+ { } s when s.Equals(HttpMethods.Get, StringComparison.OrdinalIgnoreCase) => HttpMethod.Get,
+ { } s when s.Equals(HttpMethods.Post, StringComparison.OrdinalIgnoreCase) => HttpMethod.Post,
+ { } s when s.Equals(HttpMethods.Patch, StringComparison.OrdinalIgnoreCase) => HttpMethod.Patch,
+ { } s when s.Equals(HttpMethods.Delete, StringComparison.OrdinalIgnoreCase) => HttpMethod.Delete,
+ { } s when s.Equals(HttpMethods.Put, StringComparison.OrdinalIgnoreCase) => HttpMethod.Put,
+ { } s when s.Equals(HttpMethods.Options, StringComparison.OrdinalIgnoreCase) => HttpMethod.Options,
+ { } s when s.Equals(HttpMethods.Head, StringComparison.OrdinalIgnoreCase) => HttpMethod.Head,
+ { } s when s.Equals(HttpMethods.Trace, StringComparison.OrdinalIgnoreCase) => HttpMethod.Trace,
+ _ => HttpMethod.Get
+ };
+#else
private OperationType GetOperationType(HttpEndpointDescriptor httpEndpoint) =>
httpEndpoint.Method switch
{
@@ -133,12 +160,13 @@ private OperationType GetOperationType(HttpEndpointDescriptor httpEndpoint) =>
{ } s when s.Equals(HttpMethods.Post, StringComparison.OrdinalIgnoreCase) => OperationType.Post,
{ } s when s.Equals(HttpMethods.Patch, StringComparison.OrdinalIgnoreCase) => OperationType.Patch,
{ } s when s.Equals(HttpMethods.Delete, StringComparison.OrdinalIgnoreCase) => OperationType.Delete,
- { } s when s.Equals(HttpMethods.Put, StringComparison.OrdinalIgnoreCase) => OperationType.Patch,
+ { } s when s.Equals(HttpMethods.Put, StringComparison.OrdinalIgnoreCase) => OperationType.Put,
{ } s when s.Equals(HttpMethods.Options, StringComparison.OrdinalIgnoreCase) => OperationType.Options,
{ } s when s.Equals(HttpMethods.Head, StringComparison.OrdinalIgnoreCase) => OperationType.Head,
{ } s when s.Equals(HttpMethods.Trace, StringComparison.OrdinalIgnoreCase) => OperationType.Trace,
_ => OperationType.Get
};
+#endif
}
internal record HttpEndpointDescriptor(string Id, string Path, string Method, string? DisplayName, string? Description, Type? TargetType, string? JsonSchema);
\ No newline at end of file
diff --git a/src/activities/Elsa.Activities.Telnyx/Elsa.Activities.Telnyx.csproj b/src/activities/Elsa.Activities.Telnyx/Elsa.Activities.Telnyx.csproj
index 7c4889708d..aaa7103efa 100644
--- a/src/activities/Elsa.Activities.Telnyx/Elsa.Activities.Telnyx.csproj
+++ b/src/activities/Elsa.Activities.Telnyx/Elsa.Activities.Telnyx.csproj
@@ -28,7 +28,7 @@
-
+
diff --git a/src/activities/Elsa.Activities.Temporal.Quartz/Elsa.Activities.Temporal.Quartz.csproj b/src/activities/Elsa.Activities.Temporal.Quartz/Elsa.Activities.Temporal.Quartz.csproj
index 056bc089f0..cdfdef9679 100644
--- a/src/activities/Elsa.Activities.Temporal.Quartz/Elsa.Activities.Temporal.Quartz.csproj
+++ b/src/activities/Elsa.Activities.Temporal.Quartz/Elsa.Activities.Temporal.Quartz.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/src/activities/webhooks/Elsa.Activities.Webhooks/Elsa.Activities.Webhooks.csproj b/src/activities/webhooks/Elsa.Activities.Webhooks/Elsa.Activities.Webhooks.csproj
index 6dff6f1b0d..61e0d7c048 100644
--- a/src/activities/webhooks/Elsa.Activities.Webhooks/Elsa.Activities.Webhooks.csproj
+++ b/src/activities/webhooks/Elsa.Activities.Webhooks/Elsa.Activities.Webhooks.csproj
@@ -1,4 +1,4 @@
-
+
@@ -13,8 +13,8 @@
-
-
+
+
diff --git a/src/clients/Elsa.Client/Elsa.Client.csproj b/src/clients/Elsa.Client/Elsa.Client.csproj
index 484a3a78d7..27bfd95571 100644
--- a/src/clients/Elsa.Client/Elsa.Client.csproj
+++ b/src/clients/Elsa.Client/Elsa.Client.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/src/core/Elsa.Abstractions/Elsa.Abstractions.csproj b/src/core/Elsa.Abstractions/Elsa.Abstractions.csproj
index 1e8f42256d..3f71d52065 100644
--- a/src/core/Elsa.Abstractions/Elsa.Abstractions.csproj
+++ b/src/core/Elsa.Abstractions/Elsa.Abstractions.csproj
@@ -1,4 +1,4 @@
-
+
@@ -18,17 +18,18 @@
-
-
+
+
-
+
-
-
+
+
+
diff --git a/src/core/Elsa.Core/Elsa.Core.csproj b/src/core/Elsa.Core/Elsa.Core.csproj
index 248ee99ab0..201d82dddb 100644
--- a/src/core/Elsa.Core/Elsa.Core.csproj
+++ b/src/core/Elsa.Core/Elsa.Core.csproj
@@ -23,12 +23,11 @@
-
-
+
@@ -36,8 +35,8 @@
-
-
+
+
diff --git a/src/core/Elsa/Elsa.csproj b/src/core/Elsa/Elsa.csproj
index 118c9b2a25..940c81fc29 100644
--- a/src/core/Elsa/Elsa.csproj
+++ b/src/core/Elsa/Elsa.csproj
@@ -20,7 +20,7 @@
-
+
diff --git a/src/designer/elsa-workflows-studio/src/globals/tailwind.css b/src/designer/elsa-workflows-studio/src/globals/tailwind.css
index c5f973f1f6..926afc9b7d 100644
--- a/src/designer/elsa-workflows-studio/src/globals/tailwind.css
+++ b/src/designer/elsa-workflows-studio/src/globals/tailwind.css
@@ -2510,6 +2510,10 @@ select {
left: 0.5rem;
}
+.elsa-top-10 {
+ top: 2.5rem;
+}
+
.elsa-bottom-10 {
bottom: 2.5rem;
}
@@ -2653,14 +2657,18 @@ select {
margin-top: 4rem;
}
-.elsa--mt-2 {
- margin-top: -0.5rem;
-}
-
.elsa-mb-2 {
margin-bottom: 0.5rem;
}
+.-elsa-mr-1 {
+ margin-right: -0.25rem;
+}
+
+.elsa--mt-2 {
+ margin-top: -0.5rem;
+}
+
.-elsa-ml-0\.5 {
margin-left: -0.125rem;
}
@@ -2677,10 +2685,6 @@ select {
margin-left: 0px;
}
-.-elsa-mr-1 {
- margin-right: -0.25rem;
-}
-
.elsa-ml-3\.5 {
margin-left: 0.875rem;
}
@@ -12429,10 +12433,6 @@ svg.jtk-connector.jtk-hover path {
width: 100%;
}
- .sm\:elsa-max-w-4xl {
- max-width: 56rem;
- }
-
.sm\:elsa-max-w-md {
max-width: 28rem;
}
diff --git a/src/indexing/Elsa.Indexing.Elasticsearch/Elsa.Indexing.Elasticsearch.csproj b/src/indexing/Elsa.Indexing.Elasticsearch/Elsa.Indexing.Elasticsearch.csproj
index 20f557ec8c..45e0bc9b0c 100644
--- a/src/indexing/Elsa.Indexing.Elasticsearch/Elsa.Indexing.Elasticsearch.csproj
+++ b/src/indexing/Elsa.Indexing.Elasticsearch/Elsa.Indexing.Elasticsearch.csproj
@@ -1,4 +1,4 @@
-
+
@@ -18,7 +18,7 @@
-
+
diff --git a/src/modules/secrets/Elsa.Secrets.Api/Endpoints/OAuth2/Callback.cs b/src/modules/secrets/Elsa.Secrets.Api/Endpoints/OAuth2/Callback.cs
index 55c87467de..b9bc9e6bb7 100644
--- a/src/modules/secrets/Elsa.Secrets.Api/Endpoints/OAuth2/Callback.cs
+++ b/src/modules/secrets/Elsa.Secrets.Api/Endpoints/OAuth2/Callback.cs
@@ -1,11 +1,12 @@
-using System.Threading;
-using System.Threading.Tasks;
using Elsa.Secrets.Extensions;
using Elsa.Secrets.Http.Services;
using Elsa.Secrets.Manager;
using Elsa.Secrets.Persistence;
+using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
+using System.Threading;
+using System.Threading.Tasks;
namespace Elsa.Secrets.Api.Endpoints.OAuth2
{
@@ -13,6 +14,7 @@ namespace Elsa.Secrets.Api.Endpoints.OAuth2
[ApiVersion("1")]
[Route("v{apiVersion:apiVersion}/oauth2/callback")]
[Produces("application/json")]
+ [Tags("Secrets")]
public class SetAuthCodeCallback : Controller
{
private readonly ISecretsManager _secretsManager;
diff --git a/src/modules/secrets/Elsa.Secrets.Api/Endpoints/OAuth2/GetUrl.cs b/src/modules/secrets/Elsa.Secrets.Api/Endpoints/OAuth2/GetUrl.cs
index 182abf0f7e..f217d8adc5 100644
--- a/src/modules/secrets/Elsa.Secrets.Api/Endpoints/OAuth2/GetUrl.cs
+++ b/src/modules/secrets/Elsa.Secrets.Api/Endpoints/OAuth2/GetUrl.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Net.Mime;
using System.Threading;
@@ -16,6 +16,7 @@ namespace Elsa.Secrets.Api.Endpoints.OAuth2;
[ApiVersion("1")]
[Route("v{apiVersion:apiVersion}/oauth2/url/{secretId}")]
[Produces(MediaTypeNames.Application.Json)]
+[Tags("Secrets")]
public class GetUrl : Controller
{
private readonly ISecretsManager _secretsManager;
diff --git a/src/modules/secrets/Elsa.Secrets.Api/Endpoints/Secrets/Delete.cs b/src/modules/secrets/Elsa.Secrets.Api/Endpoints/Secrets/Delete.cs
index 3dcaf5098a..f117f6320b 100644
--- a/src/modules/secrets/Elsa.Secrets.Api/Endpoints/Secrets/Delete.cs
+++ b/src/modules/secrets/Elsa.Secrets.Api/Endpoints/Secrets/Delete.cs
@@ -11,6 +11,7 @@ namespace Elsa.Secrets.Api.Endpoints.Secrets
[ApiVersion("1")]
[Route("v{apiVersion:apiVersion}/secrets/{id}")]
[Produces("application/json")]
+ [Tags("Secrets")]
public class Delete : Controller
{
private readonly ISecretsStore _secretsStore;
diff --git a/src/modules/secrets/Elsa.Secrets.Api/Endpoints/Secrets/List.cs b/src/modules/secrets/Elsa.Secrets.Api/Endpoints/Secrets/List.cs
index 1f8c3efb0e..2cc626ab88 100644
--- a/src/modules/secrets/Elsa.Secrets.Api/Endpoints/Secrets/List.cs
+++ b/src/modules/secrets/Elsa.Secrets.Api/Endpoints/Secrets/List.cs
@@ -15,6 +15,7 @@ namespace Elsa.Secrets.Api.Endpoints.Secrets
[ApiVersion("1")]
[Route("v{apiVersion:apiVersion}/secrets")]
[Produces(MediaTypeNames.Application.Json)]
+ [Tags("Secrets")]
public class List : Controller
{
private readonly ISecretsManager _secretsManager;
diff --git a/src/modules/secrets/Elsa.Secrets.Api/Endpoints/Secrets/Save.cs b/src/modules/secrets/Elsa.Secrets.Api/Endpoints/Secrets/Save.cs
index 6fac9ee1d8..ae10ec80d0 100644
--- a/src/modules/secrets/Elsa.Secrets.Api/Endpoints/Secrets/Save.cs
+++ b/src/modules/secrets/Elsa.Secrets.Api/Endpoints/Secrets/Save.cs
@@ -1,10 +1,11 @@
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
using Elsa.Secrets.Api.Models;
using Elsa.Secrets.Manager;
using Elsa.Secrets.Models;
+using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
namespace Elsa.Secrets.Api.Endpoints.Secrets
{
@@ -12,6 +13,7 @@ namespace Elsa.Secrets.Api.Endpoints.Secrets
[ApiVersion("1")]
[Route("v{apiVersion:apiVersion}/secrets")]
[Produces("application/json")]
+ [Tags("Secrets")]
public class Save : Controller
{
private readonly ISecretsManager _secretsManager;
diff --git a/src/modules/secrets/Elsa.Secrets.Http/Elsa.Secrets.Http.csproj b/src/modules/secrets/Elsa.Secrets.Http/Elsa.Secrets.Http.csproj
index 71b119d24f..cf841191cd 100644
--- a/src/modules/secrets/Elsa.Secrets.Http/Elsa.Secrets.Http.csproj
+++ b/src/modules/secrets/Elsa.Secrets.Http/Elsa.Secrets.Http.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/src/modules/secrets/Elsa.Secrets.Sql/Elsa.Secrets.Sql.csproj b/src/modules/secrets/Elsa.Secrets.Sql/Elsa.Secrets.Sql.csproj
index b69f2f6b12..39f89991c6 100644
--- a/src/modules/secrets/Elsa.Secrets.Sql/Elsa.Secrets.Sql.csproj
+++ b/src/modules/secrets/Elsa.Secrets.Sql/Elsa.Secrets.Sql.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/src/modules/secrets/Elsa.Secrets/Elsa.Secrets.csproj b/src/modules/secrets/Elsa.Secrets/Elsa.Secrets.csproj
index 3fb596b2bf..0d01da35e9 100644
--- a/src/modules/secrets/Elsa.Secrets/Elsa.Secrets.csproj
+++ b/src/modules/secrets/Elsa.Secrets/Elsa.Secrets.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/src/modules/workflowsettings/Elsa.WorkflowSettings/Elsa.WorkflowSettings.csproj b/src/modules/workflowsettings/Elsa.WorkflowSettings/Elsa.WorkflowSettings.csproj
index d78d675bbc..c66b3f5c15 100644
--- a/src/modules/workflowsettings/Elsa.WorkflowSettings/Elsa.WorkflowSettings.csproj
+++ b/src/modules/workflowsettings/Elsa.WorkflowSettings/Elsa.WorkflowSettings.csproj
@@ -1,4 +1,4 @@
-
+
@@ -13,7 +13,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.ContextualWorkflowHttp/Elsa.Samples.ContextualWorkflowHttp.csproj b/src/samples/aspnet/Elsa.Samples.ContextualWorkflowHttp/Elsa.Samples.ContextualWorkflowHttp.csproj
index 5c11335811..2bd3f2cf8c 100644
--- a/src/samples/aspnet/Elsa.Samples.ContextualWorkflowHttp/Elsa.Samples.ContextualWorkflowHttp.csproj
+++ b/src/samples/aspnet/Elsa.Samples.ContextualWorkflowHttp/Elsa.Samples.ContextualWorkflowHttp.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -7,7 +7,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.CorrelationHttp/Elsa.Samples.CorrelationHttp.csproj b/src/samples/aspnet/Elsa.Samples.CorrelationHttp/Elsa.Samples.CorrelationHttp.csproj
index f5c558a15f..bffdb66115 100644
--- a/src/samples/aspnet/Elsa.Samples.CorrelationHttp/Elsa.Samples.CorrelationHttp.csproj
+++ b/src/samples/aspnet/Elsa.Samples.CorrelationHttp/Elsa.Samples.CorrelationHttp.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,7 +6,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.CustomActivities/Elsa.Samples.CustomActivities.csproj b/src/samples/aspnet/Elsa.Samples.CustomActivities/Elsa.Samples.CustomActivities.csproj
index bc4d987956..442c882eb4 100644
--- a/src/samples/aspnet/Elsa.Samples.CustomActivities/Elsa.Samples.CustomActivities.csproj
+++ b/src/samples/aspnet/Elsa.Samples.CustomActivities/Elsa.Samples.CustomActivities.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -7,7 +7,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.DocumentApproval/Elsa.Samples.DocumentApproval.csproj b/src/samples/aspnet/Elsa.Samples.DocumentApproval/Elsa.Samples.DocumentApproval.csproj
index 0cb9939d92..5b8608112c 100644
--- a/src/samples/aspnet/Elsa.Samples.DocumentApproval/Elsa.Samples.DocumentApproval.csproj
+++ b/src/samples/aspnet/Elsa.Samples.DocumentApproval/Elsa.Samples.DocumentApproval.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,7 +6,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.ExtendHttpEndpoint/Elsa.Samples.ExtendHttpEndpoint.csproj b/src/samples/aspnet/Elsa.Samples.ExtendHttpEndpoint/Elsa.Samples.ExtendHttpEndpoint.csproj
index 13a5e0b2d5..ddb891b09a 100644
--- a/src/samples/aspnet/Elsa.Samples.ExtendHttpEndpoint/Elsa.Samples.ExtendHttpEndpoint.csproj
+++ b/src/samples/aspnet/Elsa.Samples.ExtendHttpEndpoint/Elsa.Samples.ExtendHttpEndpoint.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,7 +6,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.FaultyWorkflows/Elsa.Samples.FaultyWorkflows.csproj b/src/samples/aspnet/Elsa.Samples.FaultyWorkflows/Elsa.Samples.FaultyWorkflows.csproj
index c3605d6c1f..294738aadb 100644
--- a/src/samples/aspnet/Elsa.Samples.FaultyWorkflows/Elsa.Samples.FaultyWorkflows.csproj
+++ b/src/samples/aspnet/Elsa.Samples.FaultyWorkflows/Elsa.Samples.FaultyWorkflows.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,7 +6,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.ForkJoinTimerAndSignalHttp/Elsa.Samples.ForkJoinTimerAndSignalHttp.csproj b/src/samples/aspnet/Elsa.Samples.ForkJoinTimerAndSignalHttp/Elsa.Samples.ForkJoinTimerAndSignalHttp.csproj
index a10e881571..8f45b7f715 100644
--- a/src/samples/aspnet/Elsa.Samples.ForkJoinTimerAndSignalHttp/Elsa.Samples.ForkJoinTimerAndSignalHttp.csproj
+++ b/src/samples/aspnet/Elsa.Samples.ForkJoinTimerAndSignalHttp/Elsa.Samples.ForkJoinTimerAndSignalHttp.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,7 +6,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.HelloWorldHttp/Elsa.Samples.HelloWorldHttp.csproj b/src/samples/aspnet/Elsa.Samples.HelloWorldHttp/Elsa.Samples.HelloWorldHttp.csproj
index f5c558a15f..bffdb66115 100644
--- a/src/samples/aspnet/Elsa.Samples.HelloWorldHttp/Elsa.Samples.HelloWorldHttp.csproj
+++ b/src/samples/aspnet/Elsa.Samples.HelloWorldHttp/Elsa.Samples.HelloWorldHttp.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,7 +6,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.HttpEndpointSecurity/Elsa.Samples.HttpEndpointSecurity.csproj b/src/samples/aspnet/Elsa.Samples.HttpEndpointSecurity/Elsa.Samples.HttpEndpointSecurity.csproj
index f67ba14406..cce1a9b5da 100644
--- a/src/samples/aspnet/Elsa.Samples.HttpEndpointSecurity/Elsa.Samples.HttpEndpointSecurity.csproj
+++ b/src/samples/aspnet/Elsa.Samples.HttpEndpointSecurity/Elsa.Samples.HttpEndpointSecurity.csproj
@@ -1,12 +1,12 @@
-
+
net9.0
-
-
+
+
diff --git a/src/samples/aspnet/Elsa.Samples.InfiniteLoopDetection/Elsa.Samples.InfiniteLoopDetection.csproj b/src/samples/aspnet/Elsa.Samples.InfiniteLoopDetection/Elsa.Samples.InfiniteLoopDetection.csproj
index b432b10c7a..e696c6016b 100644
--- a/src/samples/aspnet/Elsa.Samples.InfiniteLoopDetection/Elsa.Samples.InfiniteLoopDetection.csproj
+++ b/src/samples/aspnet/Elsa.Samples.InfiniteLoopDetection/Elsa.Samples.InfiniteLoopDetection.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,7 +6,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.Interrupts/Elsa.Samples.Interrupts.csproj b/src/samples/aspnet/Elsa.Samples.Interrupts/Elsa.Samples.Interrupts.csproj
index de0d79397a..7e1af1f3fc 100644
--- a/src/samples/aspnet/Elsa.Samples.Interrupts/Elsa.Samples.Interrupts.csproj
+++ b/src/samples/aspnet/Elsa.Samples.Interrupts/Elsa.Samples.Interrupts.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -7,7 +7,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.InvokeWorkflowFromController/Elsa.Samples.InvokeWorkflowFromController.csproj b/src/samples/aspnet/Elsa.Samples.InvokeWorkflowFromController/Elsa.Samples.InvokeWorkflowFromController.csproj
index f5c558a15f..bffdb66115 100644
--- a/src/samples/aspnet/Elsa.Samples.InvokeWorkflowFromController/Elsa.Samples.InvokeWorkflowFromController.csproj
+++ b/src/samples/aspnet/Elsa.Samples.InvokeWorkflowFromController/Elsa.Samples.InvokeWorkflowFromController.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,7 +6,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Elsa.Samples.MassTransitRabbitMq.csproj b/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Elsa.Samples.MassTransitRabbitMq.csproj
index 736426e23c..e149e6b7db 100644
--- a/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Elsa.Samples.MassTransitRabbitMq.csproj
+++ b/src/samples/aspnet/Elsa.Samples.MassTransitRabbitMq/Elsa.Samples.MassTransitRabbitMq.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -14,7 +14,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.NestedForks/Elsa.Samples.NestedForks.csproj b/src/samples/aspnet/Elsa.Samples.NestedForks/Elsa.Samples.NestedForks.csproj
index c921b713c7..9e4dbaf014 100644
--- a/src/samples/aspnet/Elsa.Samples.NestedForks/Elsa.Samples.NestedForks.csproj
+++ b/src/samples/aspnet/Elsa.Samples.NestedForks/Elsa.Samples.NestedForks.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,7 +6,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.ReadModelHttp/Elsa.Samples.ReadModelHttp.csproj b/src/samples/aspnet/Elsa.Samples.ReadModelHttp/Elsa.Samples.ReadModelHttp.csproj
index f5c558a15f..bffdb66115 100644
--- a/src/samples/aspnet/Elsa.Samples.ReadModelHttp/Elsa.Samples.ReadModelHttp.csproj
+++ b/src/samples/aspnet/Elsa.Samples.ReadModelHttp/Elsa.Samples.ReadModelHttp.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,7 +6,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.SendHttp/Elsa.Samples.SendHttp.csproj b/src/samples/aspnet/Elsa.Samples.SendHttp/Elsa.Samples.SendHttp.csproj
index 1a2d2d42ff..c693e32146 100644
--- a/src/samples/aspnet/Elsa.Samples.SendHttp/Elsa.Samples.SendHttp.csproj
+++ b/src/samples/aspnet/Elsa.Samples.SendHttp/Elsa.Samples.SendHttp.csproj
@@ -1,11 +1,11 @@
-
+
net9.0
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.SignalApi/Elsa.Samples.SignalApi.csproj b/src/samples/aspnet/Elsa.Samples.SignalApi/Elsa.Samples.SignalApi.csproj
index 0a85506f98..6e70e18306 100644
--- a/src/samples/aspnet/Elsa.Samples.SignalApi/Elsa.Samples.SignalApi.csproj
+++ b/src/samples/aspnet/Elsa.Samples.SignalApi/Elsa.Samples.SignalApi.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,7 +6,7 @@
-
+
diff --git a/src/samples/aspnet/Elsa.Samples.UniqueCorrelatedWorkflows/Elsa.Samples.UniqueCorrelatedWorkflows.csproj b/src/samples/aspnet/Elsa.Samples.UniqueCorrelatedWorkflows/Elsa.Samples.UniqueCorrelatedWorkflows.csproj
index c921b713c7..9e4dbaf014 100644
--- a/src/samples/aspnet/Elsa.Samples.UniqueCorrelatedWorkflows/Elsa.Samples.UniqueCorrelatedWorkflows.csproj
+++ b/src/samples/aspnet/Elsa.Samples.UniqueCorrelatedWorkflows/Elsa.Samples.UniqueCorrelatedWorkflows.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,7 +6,7 @@
-
+
diff --git a/src/samples/console/Elsa.Samples.BuildAndDispatchConsole/Elsa.Samples.BuildAndDispatchConsole.csproj b/src/samples/console/Elsa.Samples.BuildAndDispatchConsole/Elsa.Samples.BuildAndDispatchConsole.csproj
index 8b37921af5..4d162e252a 100644
--- a/src/samples/console/Elsa.Samples.BuildAndDispatchConsole/Elsa.Samples.BuildAndDispatchConsole.csproj
+++ b/src/samples/console/Elsa.Samples.BuildAndDispatchConsole/Elsa.Samples.BuildAndDispatchConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.CompensationConsole/Elsa.Samples.CompensationConsole.csproj b/src/samples/console/Elsa.Samples.CompensationConsole/Elsa.Samples.CompensationConsole.csproj
index f9c3e572c9..ccca9d9068 100644
--- a/src/samples/console/Elsa.Samples.CompensationConsole/Elsa.Samples.CompensationConsole.csproj
+++ b/src/samples/console/Elsa.Samples.CompensationConsole/Elsa.Samples.CompensationConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -9,7 +9,7 @@
-
+
diff --git a/src/samples/console/Elsa.Samples.CustomActivityOutcomes/Elsa.Samples.CustomActivityOutcomes.csproj b/src/samples/console/Elsa.Samples.CustomActivityOutcomes/Elsa.Samples.CustomActivityOutcomes.csproj
index 6d41c661b1..031a98ebac 100644
--- a/src/samples/console/Elsa.Samples.CustomActivityOutcomes/Elsa.Samples.CustomActivityOutcomes.csproj
+++ b/src/samples/console/Elsa.Samples.CustomActivityOutcomes/Elsa.Samples.CustomActivityOutcomes.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,7 +7,7 @@
-
+
diff --git a/src/samples/console/Elsa.Samples.CustomOutcomeActivityConsole/Elsa.Samples.CustomOutcomeActivityConsole.csproj b/src/samples/console/Elsa.Samples.CustomOutcomeActivityConsole/Elsa.Samples.CustomOutcomeActivityConsole.csproj
index 10f6a28a9b..f357639fb8 100644
--- a/src/samples/console/Elsa.Samples.CustomOutcomeActivityConsole/Elsa.Samples.CustomOutcomeActivityConsole.csproj
+++ b/src/samples/console/Elsa.Samples.CustomOutcomeActivityConsole/Elsa.Samples.CustomOutcomeActivityConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.DeclarativeCompositeActivitiesConsole/Elsa.Samples.DeclarativeCompositeActivitiesConsole.csproj b/src/samples/console/Elsa.Samples.DeclarativeCompositeActivitiesConsole/Elsa.Samples.DeclarativeCompositeActivitiesConsole.csproj
index 8b37921af5..4d162e252a 100644
--- a/src/samples/console/Elsa.Samples.DeclarativeCompositeActivitiesConsole/Elsa.Samples.DeclarativeCompositeActivitiesConsole.csproj
+++ b/src/samples/console/Elsa.Samples.DeclarativeCompositeActivitiesConsole/Elsa.Samples.DeclarativeCompositeActivitiesConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.Elasticsearch/Elsa.Samples.Elasticsearch.csproj b/src/samples/console/Elsa.Samples.Elasticsearch/Elsa.Samples.Elasticsearch.csproj
index a76245cc48..f4f9429758 100644
--- a/src/samples/console/Elsa.Samples.Elasticsearch/Elsa.Samples.Elasticsearch.csproj
+++ b/src/samples/console/Elsa.Samples.Elasticsearch/Elsa.Samples.Elasticsearch.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.EntityChanged/Elsa.Samples.EntityChanged.csproj b/src/samples/console/Elsa.Samples.EntityChanged/Elsa.Samples.EntityChanged.csproj
index d583d45f63..3021e10e98 100644
--- a/src/samples/console/Elsa.Samples.EntityChanged/Elsa.Samples.EntityChanged.csproj
+++ b/src/samples/console/Elsa.Samples.EntityChanged/Elsa.Samples.EntityChanged.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.FileBasedWorkflow/Elsa.Samples.FileBasedWorkflow.csproj b/src/samples/console/Elsa.Samples.FileBasedWorkflow/Elsa.Samples.FileBasedWorkflow.csproj
index e6b2d020f7..19721904a8 100644
--- a/src/samples/console/Elsa.Samples.FileBasedWorkflow/Elsa.Samples.FileBasedWorkflow.csproj
+++ b/src/samples/console/Elsa.Samples.FileBasedWorkflow/Elsa.Samples.FileBasedWorkflow.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.ForEachLoopConsole/Elsa.Samples.ForEachLoopConsole.csproj b/src/samples/console/Elsa.Samples.ForEachLoopConsole/Elsa.Samples.ForEachLoopConsole.csproj
index 8b37921af5..4d162e252a 100644
--- a/src/samples/console/Elsa.Samples.ForEachLoopConsole/Elsa.Samples.ForEachLoopConsole.csproj
+++ b/src/samples/console/Elsa.Samples.ForEachLoopConsole/Elsa.Samples.ForEachLoopConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.ForLoopConsole/Elsa.Samples.ForLoopConsole.csproj b/src/samples/console/Elsa.Samples.ForLoopConsole/Elsa.Samples.ForLoopConsole.csproj
index 8b37921af5..4d162e252a 100644
--- a/src/samples/console/Elsa.Samples.ForLoopConsole/Elsa.Samples.ForLoopConsole.csproj
+++ b/src/samples/console/Elsa.Samples.ForLoopConsole/Elsa.Samples.ForLoopConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.Forks/Elsa.Samples.Forks.csproj b/src/samples/console/Elsa.Samples.Forks/Elsa.Samples.Forks.csproj
index 97ef66312f..27dbf3c2bc 100644
--- a/src/samples/console/Elsa.Samples.Forks/Elsa.Samples.Forks.csproj
+++ b/src/samples/console/Elsa.Samples.Forks/Elsa.Samples.Forks.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,7 +7,7 @@
-
+
diff --git a/src/samples/console/Elsa.Samples.HappinessConsole/Elsa.Samples.HappinessConsole.csproj b/src/samples/console/Elsa.Samples.HappinessConsole/Elsa.Samples.HappinessConsole.csproj
index 07b9f0435f..540bbf56bb 100644
--- a/src/samples/console/Elsa.Samples.HappinessConsole/Elsa.Samples.HappinessConsole.csproj
+++ b/src/samples/console/Elsa.Samples.HappinessConsole/Elsa.Samples.HappinessConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.HelloWorldConsole/Elsa.Samples.HelloWorldConsole.csproj b/src/samples/console/Elsa.Samples.HelloWorldConsole/Elsa.Samples.HelloWorldConsole.csproj
index 10f6a28a9b..f357639fb8 100644
--- a/src/samples/console/Elsa.Samples.HelloWorldConsole/Elsa.Samples.HelloWorldConsole.csproj
+++ b/src/samples/console/Elsa.Samples.HelloWorldConsole/Elsa.Samples.HelloWorldConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.IfThenElse/Elsa.Samples.IfThenElse.csproj b/src/samples/console/Elsa.Samples.IfThenElse/Elsa.Samples.IfThenElse.csproj
index 8b37921af5..4d162e252a 100644
--- a/src/samples/console/Elsa.Samples.IfThenElse/Elsa.Samples.IfThenElse.csproj
+++ b/src/samples/console/Elsa.Samples.IfThenElse/Elsa.Samples.IfThenElse.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.ProgrammaticCompositeActivitiesConsole/Elsa.Samples.ProgrammaticCompositeActivitiesConsole.csproj b/src/samples/console/Elsa.Samples.ProgrammaticCompositeActivitiesConsole/Elsa.Samples.ProgrammaticCompositeActivitiesConsole.csproj
index 19d95a5fa1..8986e5245a 100644
--- a/src/samples/console/Elsa.Samples.ProgrammaticCompositeActivitiesConsole/Elsa.Samples.ProgrammaticCompositeActivitiesConsole.csproj
+++ b/src/samples/console/Elsa.Samples.ProgrammaticCompositeActivitiesConsole/Elsa.Samples.ProgrammaticCompositeActivitiesConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,9 +7,9 @@
-
-
-
+
+
+
diff --git a/src/samples/console/Elsa.Samples.ReadLineEchoConsole/Elsa.Samples.ReadLineEchoConsole.csproj b/src/samples/console/Elsa.Samples.ReadLineEchoConsole/Elsa.Samples.ReadLineEchoConsole.csproj
index 8b37921af5..4d162e252a 100644
--- a/src/samples/console/Elsa.Samples.ReadLineEchoConsole/Elsa.Samples.ReadLineEchoConsole.csproj
+++ b/src/samples/console/Elsa.Samples.ReadLineEchoConsole/Elsa.Samples.ReadLineEchoConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.ReadLineToFile/Elsa.Samples.ReadLineToFile.csproj b/src/samples/console/Elsa.Samples.ReadLineToFile/Elsa.Samples.ReadLineToFile.csproj
index 4e3168a662..7960025bcc 100644
--- a/src/samples/console/Elsa.Samples.ReadLineToFile/Elsa.Samples.ReadLineToFile.csproj
+++ b/src/samples/console/Elsa.Samples.ReadLineToFile/Elsa.Samples.ReadLineToFile.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,7 +7,7 @@
-
+
diff --git a/src/samples/console/Elsa.Samples.RpaWebConsole/Elsa.Samples.RpaWebConsole.csproj b/src/samples/console/Elsa.Samples.RpaWebConsole/Elsa.Samples.RpaWebConsole.csproj
index ac1c95ce8b..dcf1be779b 100644
--- a/src/samples/console/Elsa.Samples.RpaWebConsole/Elsa.Samples.RpaWebConsole.csproj
+++ b/src/samples/console/Elsa.Samples.RpaWebConsole/Elsa.Samples.RpaWebConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.Serialization/Elsa.Samples.Serialization.csproj b/src/samples/console/Elsa.Samples.Serialization/Elsa.Samples.Serialization.csproj
index c77cd81e5d..c0b9a0e9e3 100644
--- a/src/samples/console/Elsa.Samples.Serialization/Elsa.Samples.Serialization.csproj
+++ b/src/samples/console/Elsa.Samples.Serialization/Elsa.Samples.Serialization.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.SignalingConsole/Elsa.Samples.SignalingConsole.csproj b/src/samples/console/Elsa.Samples.SignalingConsole/Elsa.Samples.SignalingConsole.csproj
index 8b37921af5..4d162e252a 100644
--- a/src/samples/console/Elsa.Samples.SignalingConsole/Elsa.Samples.SignalingConsole.csproj
+++ b/src/samples/console/Elsa.Samples.SignalingConsole/Elsa.Samples.SignalingConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.SwitchConsole/Elsa.Samples.SwitchConsole.csproj b/src/samples/console/Elsa.Samples.SwitchConsole/Elsa.Samples.SwitchConsole.csproj
index 07b9f0435f..540bbf56bb 100644
--- a/src/samples/console/Elsa.Samples.SwitchConsole/Elsa.Samples.SwitchConsole.csproj
+++ b/src/samples/console/Elsa.Samples.SwitchConsole/Elsa.Samples.SwitchConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.UserTaskConsole/Elsa.Samples.UserTaskConsole.csproj b/src/samples/console/Elsa.Samples.UserTaskConsole/Elsa.Samples.UserTaskConsole.csproj
index 5cafa0c4f4..efb972a851 100644
--- a/src/samples/console/Elsa.Samples.UserTaskConsole/Elsa.Samples.UserTaskConsole.csproj
+++ b/src/samples/console/Elsa.Samples.UserTaskConsole/Elsa.Samples.UserTaskConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/src/samples/console/Elsa.Samples.WhileLoopConsole/Elsa.Samples.WhileLoopConsole.csproj b/src/samples/console/Elsa.Samples.WhileLoopConsole/Elsa.Samples.WhileLoopConsole.csproj
index 8b37921af5..4d162e252a 100644
--- a/src/samples/console/Elsa.Samples.WhileLoopConsole/Elsa.Samples.WhileLoopConsole.csproj
+++ b/src/samples/console/Elsa.Samples.WhileLoopConsole/Elsa.Samples.WhileLoopConsole.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/dashboard/aspnetcore/ElsaDashboard.Samples.AspNetCore.Monolith/ElsaDashboard.Samples.AspNetCore.Monolith.csproj b/src/samples/dashboard/aspnetcore/ElsaDashboard.Samples.AspNetCore.Monolith/ElsaDashboard.Samples.AspNetCore.Monolith.csproj
index 8e67e2e5bf..8990a7c7e0 100644
--- a/src/samples/dashboard/aspnetcore/ElsaDashboard.Samples.AspNetCore.Monolith/ElsaDashboard.Samples.AspNetCore.Monolith.csproj
+++ b/src/samples/dashboard/aspnetcore/ElsaDashboard.Samples.AspNetCore.Monolith/ElsaDashboard.Samples.AspNetCore.Monolith.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -7,7 +7,7 @@
-
+
diff --git a/src/samples/dashboard/aspnetcore/ElsaDashboard.Samples.AspNetCore.SubPath/ElsaDashboard.Samples.AspNetCore.SubPath.csproj b/src/samples/dashboard/aspnetcore/ElsaDashboard.Samples.AspNetCore.SubPath/ElsaDashboard.Samples.AspNetCore.SubPath.csproj
index f412059bde..e40806c557 100644
--- a/src/samples/dashboard/aspnetcore/ElsaDashboard.Samples.AspNetCore.SubPath/ElsaDashboard.Samples.AspNetCore.SubPath.csproj
+++ b/src/samples/dashboard/aspnetcore/ElsaDashboard.Samples.AspNetCore.SubPath/ElsaDashboard.Samples.AspNetCore.SubPath.csproj
@@ -1,11 +1,11 @@
-
+
net9.0
-
+
diff --git a/src/samples/persistence/Elsa.Samples.Persistence.EntityFramework/Elsa.Samples.Persistence.EntityFramework.csproj b/src/samples/persistence/Elsa.Samples.Persistence.EntityFramework/Elsa.Samples.Persistence.EntityFramework.csproj
index fadd586e8f..d74f369f66 100644
--- a/src/samples/persistence/Elsa.Samples.Persistence.EntityFramework/Elsa.Samples.Persistence.EntityFramework.csproj
+++ b/src/samples/persistence/Elsa.Samples.Persistence.EntityFramework/Elsa.Samples.Persistence.EntityFramework.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -16,11 +16,11 @@
-
+
-
+
diff --git a/src/samples/persistence/Elsa.Samples.Persistence.YesSql/Elsa.Samples.Persistence.YesSql.csproj b/src/samples/persistence/Elsa.Samples.Persistence.YesSql/Elsa.Samples.Persistence.YesSql.csproj
index d864aa90e0..7a634f3f43 100644
--- a/src/samples/persistence/Elsa.Samples.Persistence.YesSql/Elsa.Samples.Persistence.YesSql.csproj
+++ b/src/samples/persistence/Elsa.Samples.Persistence.YesSql/Elsa.Samples.Persistence.YesSql.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,7 +7,7 @@
-
+
diff --git a/src/samples/worker/Elsa.Samples.AzureServiceBusWorker/Elsa.Samples.AzureServiceBusWorker.csproj b/src/samples/worker/Elsa.Samples.AzureServiceBusWorker/Elsa.Samples.AzureServiceBusWorker.csproj
index 2fedc4859d..bef069f4e4 100644
--- a/src/samples/worker/Elsa.Samples.AzureServiceBusWorker/Elsa.Samples.AzureServiceBusWorker.csproj
+++ b/src/samples/worker/Elsa.Samples.AzureServiceBusWorker/Elsa.Samples.AzureServiceBusWorker.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,8 +6,8 @@
-
-
+
+
diff --git a/src/samples/worker/Elsa.Samples.BreakLoop/Elsa.Samples.BreakLoop.csproj b/src/samples/worker/Elsa.Samples.BreakLoop/Elsa.Samples.BreakLoop.csproj
index 4be389dfbe..d106f7544c 100644
--- a/src/samples/worker/Elsa.Samples.BreakLoop/Elsa.Samples.BreakLoop.csproj
+++ b/src/samples/worker/Elsa.Samples.BreakLoop/Elsa.Samples.BreakLoop.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,8 +6,8 @@
-
-
+
+
diff --git a/src/samples/worker/Elsa.Samples.CustomAttributesChildWorker/Elsa.Samples.CustomAttributesChildWorker.csproj b/src/samples/worker/Elsa.Samples.CustomAttributesChildWorker/Elsa.Samples.CustomAttributesChildWorker.csproj
index 881f6155d1..a3a94ca39c 100644
--- a/src/samples/worker/Elsa.Samples.CustomAttributesChildWorker/Elsa.Samples.CustomAttributesChildWorker.csproj
+++ b/src/samples/worker/Elsa.Samples.CustomAttributesChildWorker/Elsa.Samples.CustomAttributesChildWorker.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/worker/Elsa.Samples.DistributedLock/Elsa.Samples.DistributedLock.csproj b/src/samples/worker/Elsa.Samples.DistributedLock/Elsa.Samples.DistributedLock.csproj
index 0fce7d3070..58c7984b33 100644
--- a/src/samples/worker/Elsa.Samples.DistributedLock/Elsa.Samples.DistributedLock.csproj
+++ b/src/samples/worker/Elsa.Samples.DistributedLock/Elsa.Samples.DistributedLock.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -7,9 +7,9 @@
-
+
-
+
diff --git a/src/samples/worker/Elsa.Samples.Faulting/Elsa.Samples.Faulting.csproj b/src/samples/worker/Elsa.Samples.Faulting/Elsa.Samples.Faulting.csproj
index de19e76c76..f5a365dc67 100644
--- a/src/samples/worker/Elsa.Samples.Faulting/Elsa.Samples.Faulting.csproj
+++ b/src/samples/worker/Elsa.Samples.Faulting/Elsa.Samples.Faulting.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/samples/worker/Elsa.Samples.MqttWorker/Elsa.Samples.MqttWorker.csproj b/src/samples/worker/Elsa.Samples.MqttWorker/Elsa.Samples.MqttWorker.csproj
index ccec1bb684..a3a3105738 100644
--- a/src/samples/worker/Elsa.Samples.MqttWorker/Elsa.Samples.MqttWorker.csproj
+++ b/src/samples/worker/Elsa.Samples.MqttWorker/Elsa.Samples.MqttWorker.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/src/samples/worker/Elsa.Samples.MultiTenantChildWorker/Elsa.Samples.MultiTenantChildWorker.csproj b/src/samples/worker/Elsa.Samples.MultiTenantChildWorker/Elsa.Samples.MultiTenantChildWorker.csproj
index 629655db66..23dfa506f4 100644
--- a/src/samples/worker/Elsa.Samples.MultiTenantChildWorker/Elsa.Samples.MultiTenantChildWorker.csproj
+++ b/src/samples/worker/Elsa.Samples.MultiTenantChildWorker/Elsa.Samples.MultiTenantChildWorker.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,8 +6,8 @@
-
-
+
+
diff --git a/src/samples/worker/Elsa.Samples.RabbitMqWorker/Elsa.Samples.RabbitMqWorker.csproj b/src/samples/worker/Elsa.Samples.RabbitMqWorker/Elsa.Samples.RabbitMqWorker.csproj
index 8fb9abc6d5..1300677ba2 100644
--- a/src/samples/worker/Elsa.Samples.RabbitMqWorker/Elsa.Samples.RabbitMqWorker.csproj
+++ b/src/samples/worker/Elsa.Samples.RabbitMqWorker/Elsa.Samples.RabbitMqWorker.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/src/samples/worker/Elsa.Samples.RebusErrorWorker/Elsa.Samples.RebusErrorWorker.csproj b/src/samples/worker/Elsa.Samples.RebusErrorWorker/Elsa.Samples.RebusErrorWorker.csproj
index 5610869801..0063a9b1ae 100644
--- a/src/samples/worker/Elsa.Samples.RebusErrorWorker/Elsa.Samples.RebusErrorWorker.csproj
+++ b/src/samples/worker/Elsa.Samples.RebusErrorWorker/Elsa.Samples.RebusErrorWorker.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,9 +6,9 @@
-
+
-
+
diff --git a/src/samples/worker/Elsa.Samples.RebusWorker/Elsa.Samples.RebusWorker.csproj b/src/samples/worker/Elsa.Samples.RebusWorker/Elsa.Samples.RebusWorker.csproj
index 8cb0988c9a..41b9e81872 100644
--- a/src/samples/worker/Elsa.Samples.RebusWorker/Elsa.Samples.RebusWorker.csproj
+++ b/src/samples/worker/Elsa.Samples.RebusWorker/Elsa.Samples.RebusWorker.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,9 +6,9 @@
-
+
-
+
diff --git a/src/samples/worker/Elsa.Samples.RunChildWorkflowWorker/Elsa.Samples.RunChildWorkflowWorker.csproj b/src/samples/worker/Elsa.Samples.RunChildWorkflowWorker/Elsa.Samples.RunChildWorkflowWorker.csproj
index 68f7b60c8b..2226b138ae 100644
--- a/src/samples/worker/Elsa.Samples.RunChildWorkflowWorker/Elsa.Samples.RunChildWorkflowWorker.csproj
+++ b/src/samples/worker/Elsa.Samples.RunChildWorkflowWorker/Elsa.Samples.RunChildWorkflowWorker.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -6,8 +6,8 @@
-
-
+
+
diff --git a/src/samples/worker/Elsa.Samples.Timers.Hangfire/Elsa.Samples.Timers.Hangfire.csproj b/src/samples/worker/Elsa.Samples.Timers.Hangfire/Elsa.Samples.Timers.Hangfire.csproj
index 00a242acf5..65c6db4be8 100644
--- a/src/samples/worker/Elsa.Samples.Timers.Hangfire/Elsa.Samples.Timers.Hangfire.csproj
+++ b/src/samples/worker/Elsa.Samples.Timers.Hangfire/Elsa.Samples.Timers.Hangfire.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/src/samples/worker/Elsa.Samples.Timers.Quartz/Elsa.Samples.Timers.Quartz.csproj b/src/samples/worker/Elsa.Samples.Timers.Quartz/Elsa.Samples.Timers.Quartz.csproj
index d13ff05457..a8704ed07d 100644
--- a/src/samples/worker/Elsa.Samples.Timers.Quartz/Elsa.Samples.Timers.Quartz.csproj
+++ b/src/samples/worker/Elsa.Samples.Timers.Quartz/Elsa.Samples.Timers.Quartz.csproj
@@ -1,4 +1,4 @@
-
+
Exe
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Elsa.Samples.WatchDirectoryWorker.csproj b/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Elsa.Samples.WatchDirectoryWorker.csproj
index ae66dfdabc..f72d31ea17 100644
--- a/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Elsa.Samples.WatchDirectoryWorker.csproj
+++ b/src/samples/worker/Elsa.Samples.WatchDirectoryWorker/Elsa.Samples.WatchDirectoryWorker.csproj
@@ -17,8 +17,8 @@
-
-
+
+
diff --git a/src/samples/worker/Elsa.Samples.WhileLoopWorker/Elsa.Samples.WhileLoopWorker.csproj b/src/samples/worker/Elsa.Samples.WhileLoopWorker/Elsa.Samples.WhileLoopWorker.csproj
index 5b92bbaed2..4d83357a9f 100644
--- a/src/samples/worker/Elsa.Samples.WhileLoopWorker/Elsa.Samples.WhileLoopWorker.csproj
+++ b/src/samples/worker/Elsa.Samples.WhileLoopWorker/Elsa.Samples.WhileLoopWorker.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/scripting/Elsa.Scripting.JavaScript/Converters/Jint/ByteArrayConverter.cs b/src/scripting/Elsa.Scripting.JavaScript/Converters/Jint/ByteArrayConverter.cs
index 9830c5de56..56066e2ae7 100644
--- a/src/scripting/Elsa.Scripting.JavaScript/Converters/Jint/ByteArrayConverter.cs
+++ b/src/scripting/Elsa.Scripting.JavaScript/Converters/Jint/ByteArrayConverter.cs
@@ -11,14 +11,15 @@ internal class ByteArrayConverter : IObjectConverter
{
public bool TryConvert(Engine engine, object value, out JsValue result)
{
- result = JsValue.Null;
-
- if (value is not byte[] buffer)
- return false;
+ if (value is byte[] bytes)
+ {
+ var buffer = engine.Intrinsics.ArrayBuffer.Construct(bytes);
+ result = buffer;
+ return true;
+ }
- result = new ObjectWrapper(engine, buffer);
-
- return true;
+ result = JsValue.Null;
+ return false;
}
}
}
\ No newline at end of file
diff --git a/src/scripting/Elsa.Scripting.JavaScript/Elsa.Scripting.JavaScript.csproj b/src/scripting/Elsa.Scripting.JavaScript/Elsa.Scripting.JavaScript.csproj
index 6b7a1ee77e..1aa5def66d 100644
--- a/src/scripting/Elsa.Scripting.JavaScript/Elsa.Scripting.JavaScript.csproj
+++ b/src/scripting/Elsa.Scripting.JavaScript/Elsa.Scripting.JavaScript.csproj
@@ -14,11 +14,15 @@
-
+
+
+
+
+
diff --git a/src/server/Elsa.Server.Api/Elsa.Server.Api.csproj b/src/server/Elsa.Server.Api/Elsa.Server.Api.csproj
index 806518a41f..817ba30ba3 100644
--- a/src/server/Elsa.Server.Api/Elsa.Server.Api.csproj
+++ b/src/server/Elsa.Server.Api/Elsa.Server.Api.csproj
@@ -1,4 +1,4 @@
-
+
@@ -15,10 +15,18 @@
+
+
+
+
+
+
+
+
@@ -35,13 +43,9 @@
-
+
-
-
-
-
-
+
diff --git a/src/server/Elsa.Server.Api/Extensions/DocumentFilters/RemoveEmptyControllerTagsFilter .cs b/src/server/Elsa.Server.Api/Extensions/DocumentFilters/RemoveEmptyControllerTagsFilter .cs
new file mode 100644
index 0000000000..36f715277c
--- /dev/null
+++ b/src/server/Elsa.Server.Api/Extensions/DocumentFilters/RemoveEmptyControllerTagsFilter .cs
@@ -0,0 +1,73 @@
+#if NET10_0_OR_GREATER
+using Microsoft.OpenApi;
+#else
+using Microsoft.OpenApi.Models;
+#endif
+using Swashbuckle.AspNetCore.SwaggerGen;
+using System.Linq;
+
+namespace Elsa.Server.Api.Extensions.DocumentFilters
+{
+ ///
+ /// Removes any top-level tag definitions from the OpenAPI document that aren't actually assigned to any endpoint operations.
+ /// This helps to keep the generated documentation clean and focused on relevant tags.
+ ///
+ /// ///
+ ///
+ /// Root Cause: Swashbuckle's annotation engine bypasses its custom tag selection rules
+ /// when using [SwaggerOperation(Tags = ...)]. This leaves behind "ghost" controller-named tags
+ /// at the root level of the generated OpenAPI document that contain zero active endpoints.
+ /// See Swashbuckle Issue #2618 (https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/2618).
+ ///
+ ///
+ /// .NET 10 Conflict: In .NET 10, the native Microsoft.AspNetCore.OpenApi pipeline
+ /// implicitly pushes default metadata tags down the ApiExplorer framework prior to Swashbuckle
+ /// evaluation. This renders internal interception strategies like TagActionsBy ineffective.
+ ///
+ ///
+ /// Resolution: This filter executes exactly once per document build. It scans all actively mapped
+ /// operations, compiles a list of utilized tags, and purges any unmapped root-level tag headers to preserve
+ /// clean layout grouping in the Swagger UI.
+ ///
+ ///
+ public class RemoveEmptyControllerTagsFilter : IDocumentFilter
+ {
+ public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context)
+ {
+ // 1. Find all tags that are actually assigned to at least one endpoint operation
+#if NET10_0_OR_GREATER
+ // In .NET 10, operation.Tags is ISet
+ var activeTags = swaggerDoc.Paths.Values
+ .SelectMany(path => path.Operations?.Values ?? Enumerable.Empty())
+ .SelectMany(op => op.Tags?.Select(t => t.Reference?.Id) ?? Enumerable.Empty())
+ .Where(id => !string.IsNullOrEmpty(id))
+ .ToHashSet();
+#else
+ // In .NET 8/9, operation.Tags is IList
+ var activeTags = swaggerDoc.Paths.Values
+ .SelectMany(path => path.Operations?.Values ?? Enumerable.Empty())
+ .SelectMany(op => op.Tags?.Select(t => t.Name) ?? Enumerable.Empty())
+ .Where(name => !string.IsNullOrEmpty(name))
+ .ToHashSet();
+#endif
+
+ // 2. Remove any top-level tag definitions that aren't actively used by an operation
+ if (swaggerDoc.Tags != null)
+ {
+#if NET10_0_OR_GREATER
+ // In .NET 10, swaggerDoc.Tags is ISet
+ var tagsToRemove = swaggerDoc.Tags.Where(tag => !activeTags.Contains(tag.Name)).ToList();
+ foreach (var tag in tagsToRemove)
+ {
+ swaggerDoc.Tags.Remove(tag);
+ }
+#else
+ // In .NET 8/9, swaggerDoc.Tags is IList
+ swaggerDoc.Tags = swaggerDoc.Tags
+ .Where(tag => activeTags.Contains(tag.Name))
+ .ToList();
+#endif
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/server/Elsa.Server.Api/Extensions/ServiceCollectionExtensions.cs b/src/server/Elsa.Server.Api/Extensions/ServiceCollectionExtensions.cs
index 7e50323a94..28b7ff1215 100644
--- a/src/server/Elsa.Server.Api/Extensions/ServiceCollectionExtensions.cs
+++ b/src/server/Elsa.Server.Api/Extensions/ServiceCollectionExtensions.cs
@@ -3,6 +3,7 @@
using Elsa.Models;
using Elsa.Server.Api;
using Elsa.Server.Api.Extensions;
+using Elsa.Server.Api.Extensions.DocumentFilters;
using Elsa.Server.Api.Extensions.SchemaFilters;
using Elsa.Server.Api.Mapping;
using Elsa.Server.Api.Services;
@@ -103,6 +104,7 @@ public static IServiceCollection AddElsaSwagger(this IServiceCollection services
//Allow enums to be displayed
c.SchemaFilter();
+ c.DocumentFilter();
configure?.Invoke(c);
});
}
diff --git a/test/component/Elsa.ComponentTests/Elsa.ComponentTests.csproj b/test/component/Elsa.ComponentTests/Elsa.ComponentTests.csproj
index cc4758b819..730f74b526 100644
--- a/test/component/Elsa.ComponentTests/Elsa.ComponentTests.csproj
+++ b/test/component/Elsa.ComponentTests/Elsa.ComponentTests.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -8,7 +8,7 @@
-
+
diff --git a/test/integration/Elsa.Core.IntegrationTests/Elsa.Core.IntegrationTests.csproj b/test/integration/Elsa.Core.IntegrationTests/Elsa.Core.IntegrationTests.csproj
index 724d2f85cc..49a0d40152 100644
--- a/test/integration/Elsa.Core.IntegrationTests/Elsa.Core.IntegrationTests.csproj
+++ b/test/integration/Elsa.Core.IntegrationTests/Elsa.Core.IntegrationTests.csproj
@@ -1,4 +1,4 @@
-
+
net9.0
@@ -13,7 +13,7 @@
-
+
@@ -27,7 +27,7 @@
-
+
diff --git a/test/shared/Elsa.Testing.Shared/Elsa.Testing.Shared.csproj b/test/shared/Elsa.Testing.Shared/Elsa.Testing.Shared.csproj
index 33fd433642..43beae8a28 100644
--- a/test/shared/Elsa.Testing.Shared/Elsa.Testing.Shared.csproj
+++ b/test/shared/Elsa.Testing.Shared/Elsa.Testing.Shared.csproj
@@ -12,13 +12,13 @@
-
+
-
-
+
+
diff --git a/test/unit/Elsa.UnitTests/Elsa.UnitTests.csproj b/test/unit/Elsa.UnitTests/Elsa.UnitTests.csproj
index 7b48ce712b..0590ae4be7 100644
--- a/test/unit/Elsa.UnitTests/Elsa.UnitTests.csproj
+++ b/test/unit/Elsa.UnitTests/Elsa.UnitTests.csproj
@@ -22,7 +22,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
diff --git a/test/unit/Elsa.UnitTests/Scripting/JavaScript/Services/JintJavaScriptEvaluatorTests.cs b/test/unit/Elsa.UnitTests/Scripting/JavaScript/Services/JintJavaScriptEvaluatorTests.cs
index a635c5444d..f47ac930dc 100644
--- a/test/unit/Elsa.UnitTests/Scripting/JavaScript/Services/JintJavaScriptEvaluatorTests.cs
+++ b/test/unit/Elsa.UnitTests/Scripting/JavaScript/Services/JintJavaScriptEvaluatorTests.cs
@@ -1,10 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using AutoFixture.Xunit2;
+using Elsa.Scripting.JavaScript.Converters.Jint;
using Elsa.Scripting.JavaScript.Messages;
using Elsa.Services.Models;
using Elsa.Testing.Shared;
using Elsa.Testing.Shared.AutoFixture.Attributes;
+using Jint;
+using Jint.Native;
using MediatR;
using Moq;
using Xunit;
@@ -129,5 +135,99 @@ public async Task EvaluateAsyncShouldBeAbleToEvaluateAndReturnANodaTimeObject(
Assert.Equal(NodaTime.Duration.FromHours(36), result);
}
+
+ [Theory(DisplayName = "ByteArrayConverter: The EvaluateAsync method should expose a byte array as an ArrayBuffer and preserve its values"), AutoMoqData]
+ public async Task EvaluateAsync_ShouldExposeByteArrayAsArrayBufferWithCorrectValues(
+ [Frozen] IMediator mediator,
+ [JintEvaluatorWithConverter] JintJavaScriptEvaluator sut,
+ [StubActivityExecutionContext] ActivityExecutionContext context1)
+ {
+ var bytes = new byte[] { 1, 2, 3, 4 };
+ object returnedValue = null;
+
+ Mock.Get(mediator)
+ .Setup(x => x.Publish(It.Is(e => e.ActivityExecutionContext == context1), It.IsAny()))
+ .Callback((EvaluatingJavaScriptExpression expression, CancellationToken t) => { expression.Engine.SetValue("MyVariable", returnedValue); });
+
+ returnedValue = bytes;
+
+ // Check length
+ var lengthResult = await sut.EvaluateAsync("MyVariable.byteLength", typeof(object), context1);
+ Assert.Equal((double)bytes.Length, lengthResult);
+
+ // Check values
+ var jsArray = await sut.EvaluateAsync("Array.from(new Uint8Array(MyVariable))", typeof(object), context1);
+ var resultArray = ((IEnumerable