diff --git a/docker-compose.yaml b/docker-compose.yaml index 3f4f43f953..6dbb72b72d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,5 +1,3 @@ -version: '3.7' - services: mongodb: @@ -19,21 +17,8 @@ services: volumes: - pgdata:/var/lib/postgresql/data - mysql: - image: mysql:5.7 - restart: always - environment: - MYSQL_DATABASE: 'elsa' - MYSQL_USER: 'user' - MYSQL_PASSWORD: 'password' - MYSQL_ROOT_PASSWORD: 'password' - ports: - - '3306:3306' - expose: - - '3306' - - mysql-arm: - image: arm64v8/mysql:8 + mysql-v8: + image: mysql:8 restart: always environment: MYSQL_DATABASE: 'Elsa' @@ -41,7 +26,7 @@ services: MYSQL_PASSWORD: 'password' MYSQL_ROOT_PASSWORD: 'password' ports: - - '3306:3306' + - '3306:3306' expose: - '3306' @@ -58,8 +43,14 @@ services: ports: - "1433:1433" + # Azurite (Official Microsoft Local Emulator) azureblobstorage: - image: mcr.microsoft.com/azure-blob-storage + image: mcr.microsoft.com/azure-storage/azurite + restart: always + ports: + - "10000:10000" # Blob service port + - "10001:10001" # Queue service port + - "10002:10002" # Table service port redis: image: redis 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/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.MySql/Elsa.Webhooks.Persistence.EntityFramework.MySql.csproj b/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.MySql/Elsa.Webhooks.Persistence.EntityFramework.MySql.csproj index 7c4bdb8c98..1a4501b106 100644 --- a/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.MySql/Elsa.Webhooks.Persistence.EntityFramework.MySql.csproj +++ b/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.MySql/Elsa.Webhooks.Persistence.EntityFramework.MySql.csproj @@ -4,7 +4,7 @@ - net8.0;net9.0;net10.0 + net8.0;net9.0 Elsa is a set of workflow libraries and tools that enable lean and mean workflowing capabilities in any .NET Core application. This package provides the MySql EF Core provider for Webhook persistence. @@ -17,7 +17,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + @@ -25,15 +25,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - + diff --git a/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.PostgreSql/Elsa.Webhooks.Persistence.EntityFramework.PostgreSql.csproj b/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.PostgreSql/Elsa.Webhooks.Persistence.EntityFramework.PostgreSql.csproj index 8acda265ff..cf3145a3ea 100644 --- a/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.PostgreSql/Elsa.Webhooks.Persistence.EntityFramework.PostgreSql.csproj +++ b/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.PostgreSql/Elsa.Webhooks.Persistence.EntityFramework.PostgreSql.csproj @@ -29,7 +29,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.SqlServer/Elsa.Webhooks.Persistence.EntityFramework.SqlServer.csproj b/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.SqlServer/Elsa.Webhooks.Persistence.EntityFramework.SqlServer.csproj index 0c025eab1b..6bae4bdfa6 100644 --- a/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.SqlServer/Elsa.Webhooks.Persistence.EntityFramework.SqlServer.csproj +++ b/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.SqlServer/Elsa.Webhooks.Persistence.EntityFramework.SqlServer.csproj @@ -29,7 +29,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.Sqlite/Elsa.Webhooks.Persistence.EntityFramework.Sqlite.csproj b/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.Sqlite/Elsa.Webhooks.Persistence.EntityFramework.Sqlite.csproj index 36321246b0..03e575796b 100644 --- a/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.Sqlite/Elsa.Webhooks.Persistence.EntityFramework.Sqlite.csproj +++ b/src/activities/webhooks/Elsa.Webhooks.Persistence.EntityFramework.Sqlite/Elsa.Webhooks.Persistence.EntityFramework.Sqlite.csproj @@ -29,7 +29,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive 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.Persistence.EntityFramework.MySql/Elsa.Secrets.Persistence.EntityFramework.MySql.csproj b/src/modules/secrets/Elsa.Secrets.Persistence.EntityFramework.MySql/Elsa.Secrets.Persistence.EntityFramework.MySql.csproj index 5cb2af7f07..637e3512e2 100644 --- a/src/modules/secrets/Elsa.Secrets.Persistence.EntityFramework.MySql/Elsa.Secrets.Persistence.EntityFramework.MySql.csproj +++ b/src/modules/secrets/Elsa.Secrets.Persistence.EntityFramework.MySql/Elsa.Secrets.Persistence.EntityFramework.MySql.csproj @@ -4,7 +4,7 @@ - net8.0;net9.0;net10.0 + net8.0;net9.0 Elsa Secrets Entity Framework MySql is an optional part of Elsa Workflows. @@ -25,13 +25,6 @@ - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - diff --git a/src/modules/secrets/Elsa.Secrets.Persistence.EntityFramework.SqlServer/Elsa.Secrets.Persistence.EntityFramework.SqlServer.csproj b/src/modules/secrets/Elsa.Secrets.Persistence.EntityFramework.SqlServer/Elsa.Secrets.Persistence.EntityFramework.SqlServer.csproj index e9b8e62a81..2cada37282 100644 --- a/src/modules/secrets/Elsa.Secrets.Persistence.EntityFramework.SqlServer/Elsa.Secrets.Persistence.EntityFramework.SqlServer.csproj +++ b/src/modules/secrets/Elsa.Secrets.Persistence.EntityFramework.SqlServer/Elsa.Secrets.Persistence.EntityFramework.SqlServer.csproj @@ -25,7 +25,7 @@ - + diff --git a/src/modules/secrets/Elsa.Secrets.Persistence.EntityFramework.Sqlite/Elsa.Secrets.Persistence.EntityFramework.Sqlite.csproj b/src/modules/secrets/Elsa.Secrets.Persistence.EntityFramework.Sqlite/Elsa.Secrets.Persistence.EntityFramework.Sqlite.csproj index 6dfea2297c..975a03c5fc 100644 --- a/src/modules/secrets/Elsa.Secrets.Persistence.EntityFramework.Sqlite/Elsa.Secrets.Persistence.EntityFramework.Sqlite.csproj +++ b/src/modules/secrets/Elsa.Secrets.Persistence.EntityFramework.Sqlite/Elsa.Secrets.Persistence.EntityFramework.Sqlite.csproj @@ -28,7 +28,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive 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.Persistence.EntityFramework.MySql/Elsa.WorkflowSettings.Persistence.EntityFramework.MySql.csproj b/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.MySql/Elsa.WorkflowSettings.Persistence.EntityFramework.MySql.csproj index 30a3ab0ed4..ea75ee3106 100644 --- a/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.MySql/Elsa.WorkflowSettings.Persistence.EntityFramework.MySql.csproj +++ b/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.MySql/Elsa.WorkflowSettings.Persistence.EntityFramework.MySql.csproj @@ -4,7 +4,7 @@ - net8.0;net9.0;net10.0 + net8.0;net9.0 Elsa Workflow Settings is an optional part of Elsa Workflows. This package provides Entity Framework Core migrations for the MySql database provider. @@ -26,13 +26,6 @@ - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - diff --git a/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.PostgreSql/Elsa.WorkflowSettings.Persistence.EntityFramework.PostgreSql.csproj b/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.PostgreSql/Elsa.WorkflowSettings.Persistence.EntityFramework.PostgreSql.csproj index 6d707be178..9b80d2b62a 100644 --- a/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.PostgreSql/Elsa.WorkflowSettings.Persistence.EntityFramework.PostgreSql.csproj +++ b/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.PostgreSql/Elsa.WorkflowSettings.Persistence.EntityFramework.PostgreSql.csproj @@ -29,7 +29,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.SqlServer/Elsa.WorkflowSettings.Persistence.EntityFramework.SqlServer.csproj b/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.SqlServer/Elsa.WorkflowSettings.Persistence.EntityFramework.SqlServer.csproj index 9be145f0ff..c16dc2e75b 100644 --- a/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.SqlServer/Elsa.WorkflowSettings.Persistence.EntityFramework.SqlServer.csproj +++ b/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.SqlServer/Elsa.WorkflowSettings.Persistence.EntityFramework.SqlServer.csproj @@ -29,7 +29,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.Sqlite/Elsa.WorkflowSettings.Persistence.EntityFramework.Sqlite.csproj b/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.Sqlite/Elsa.WorkflowSettings.Persistence.EntityFramework.Sqlite.csproj index 6233c47a5c..46b0833be4 100644 --- a/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.Sqlite/Elsa.WorkflowSettings.Persistence.EntityFramework.Sqlite.csproj +++ b/src/modules/workflowsettings/Elsa.WorkflowSettings.Persistence.EntityFramework.Sqlite/Elsa.WorkflowSettings.Persistence.EntityFramework.Sqlite.csproj @@ -29,7 +29,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive 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/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Core/Elsa.Persistence.EntityFramework.Core.csproj b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Core/Elsa.Persistence.EntityFramework.Core.csproj index b6b13fe549..6f6138d8a2 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Core/Elsa.Persistence.EntityFramework.Core.csproj +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Core/Elsa.Persistence.EntityFramework.Core.csproj @@ -4,7 +4,7 @@ - netstandard2.1;net8.0;net9.0 + netstandard2.1;net8.0;net9.0;net10.0 Elsa is a set of workflow libraries and tools that enable lean and mean workflowing capabilities in any .NET Core application. This package provides Entity Framework Core entities used by the various Elsa persistence EF Core providers. @@ -28,8 +28,8 @@ - - + + diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.MySql/Elsa.Persistence.EntityFramework.MySql.csproj b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.MySql/Elsa.Persistence.EntityFramework.MySql.csproj index 9aefb4f172..fb14ffe449 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.MySql/Elsa.Persistence.EntityFramework.MySql.csproj +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.MySql/Elsa.Persistence.EntityFramework.MySql.csproj @@ -4,7 +4,7 @@ - net8.0;net9.0;net10.0 + net8.0;net9.0 Elsa is a set of workflow libraries and tools that enable lean and mean workflowing capabilities in any .NET Core application. This package provides Entity Framework Core migrations for the MySql database provider. @@ -21,7 +21,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + @@ -29,15 +29,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - + diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Oracle/Elsa.Persistence.EntityFramework.Oracle.csproj b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Oracle/Elsa.Persistence.EntityFramework.Oracle.csproj index f892df2cb0..153f5a3f59 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Oracle/Elsa.Persistence.EntityFramework.Oracle.csproj +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Oracle/Elsa.Persistence.EntityFramework.Oracle.csproj @@ -33,11 +33,11 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Elsa.Persistence.EntityFramework.PostgreSql.csproj b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Elsa.Persistence.EntityFramework.PostgreSql.csproj index f6df5e896b..9eeabd49a2 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Elsa.Persistence.EntityFramework.PostgreSql.csproj +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.PostgreSql/Elsa.Persistence.EntityFramework.PostgreSql.csproj @@ -33,7 +33,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Elsa.Persistence.EntityFramework.SqlServer.csproj b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Elsa.Persistence.EntityFramework.SqlServer.csproj index e17f3ac73c..3f5b94bb98 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Elsa.Persistence.EntityFramework.SqlServer.csproj +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.SqlServer/Elsa.Persistence.EntityFramework.SqlServer.csproj @@ -29,7 +29,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Elsa.Persistence.EntityFramework.Sqlite.csproj b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Elsa.Persistence.EntityFramework.Sqlite.csproj index 357acd5e58..60eca5a5b1 100644 --- a/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Elsa.Persistence.EntityFramework.Sqlite.csproj +++ b/src/persistence/Elsa.Persistence.EntityFramework/Elsa.Persistence.EntityFramework.Sqlite/Elsa.Persistence.EntityFramework.Sqlite.csproj @@ -33,7 +33,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive 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..a7f3377032 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 @@ - + @@ -16,7 +16,6 @@ - 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..5c6bc30abd 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,17 +1,22 @@ - + - net9.0 + net9.0;net10.0 a3259a33-fe85-4d27-b041-b92a506390f5 - + + + + + + - + @@ -28,7 +33,6 @@ - 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..4dcfbac14d 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 - + @@ -16,7 +16,6 @@ - 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..4403860b4f 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,8 +1,8 @@ - + Exe - net9.0 + net9.0;net10.0 false @@ -11,20 +11,20 @@ - - + - - + + + - - + + - - + + diff --git a/src/samples/persistence/Elsa.Samples.Persistence.EntityFramework/Program.cs b/src/samples/persistence/Elsa.Samples.Persistence.EntityFramework/Program.cs index a6529e4d08..2a1bfef444 100644 --- a/src/samples/persistence/Elsa.Samples.Persistence.EntityFramework/Program.cs +++ b/src/samples/persistence/Elsa.Samples.Persistence.EntityFramework/Program.cs @@ -2,10 +2,16 @@ using System.Threading.Tasks; using Elsa.Persistence; using Elsa.Persistence.EntityFramework.Core.Extensions; +using Elsa.Persistence.EntityFramework.Sqlite; +#if NET9_0 +// Currently not supported in net10 until Pomelo supports it +//using Elsa.Persistence.EntityFramework.MySql; +#endif +//using Elsa.Persistence.EntityFramework.PostgreSql; +//using Elsa.Persistence.EntityFramework.SqlServer; using Elsa.Persistence.Specifications.WorkflowInstances; using Elsa.Services; using Microsoft.Extensions.DependencyInjection; -using Elsa.Persistence.EntityFramework.SqlServer; namespace Elsa.Samples.Persistence.EntityFramework { @@ -19,13 +25,14 @@ private static async Task Main() // Configure Elsa to use the Entity Framework Core persistence provider using one of the three available providers .UseEntityFrameworkPersistence(ef => { - //ef.UseSqlite(); - - //ef.UsePostgreSql("Server=127.0.0.1;Port=5432;Database=elsa;User Id=postgres;Password=password;"); + ef.UseSqlite(); + //ef.UsePostgreSql("Server=127.0.0.1;Port=5432;Database=elsa;User Id=root;Password=Password12!;"); +#if NET9_0 + // Currently not supported in net10 until Pomelo supports it //ef.UseMySql("Server=localhost;Port=3306;Database=elsa;User=root;Password=password;"); - - ef.UseSqlServer("Server=localhost;Database=Elsa;Integrated Security=true"); +#endif + //ef.UseSqlServer("Server=localhost,1433;Database=Elsa;User Id=SA;Password=:8jNZdK7cK;TrustServerCertificate=True"); }) .AddConsoleActivities() .AddWorkflow()) 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)jsArray).Select(Convert.ToByte).ToArray(); + Assert.Equal(bytes, resultArray); + } + + [Fact(DisplayName = "ByteArrayConverter: Should return false and JsValue.Null for null input")] + public void TryConvert_ShouldReturnFalse_ForNull() + { + var converter = new ByteArrayConverter(); + var engine = new Engine(); + var result = JsValue.Undefined; + + var success = converter.TryConvert(engine, null, out result); + + Assert.False(success); + Assert.Equal(JsValue.Null, result); + } + + [Fact(DisplayName = "ByteArrayConverter: Should return false for non-byte array input")] + public void TryConvert_ShouldReturnFalse_ForNonByteArray() + { + var converter = new ByteArrayConverter(); + var engine = new Engine(); + var result = JsValue.Undefined; + + var success = converter.TryConvert(engine, new int[] { 1, 2, 3 }, out result); + + Assert.False(success); + Assert.Equal(JsValue.Null, result); + } + + [Theory(DisplayName = "ByteArrayConverter: Should roundtrip a byte array from .NET to JS and back"), AutoMoqData] + public async Task EvaluateAsync_ShouldRoundtripByteArray( + [Frozen] IMediator mediator, + [JintEvaluatorWithConverter] JintJavaScriptEvaluator sut, + [StubActivityExecutionContext] ActivityExecutionContext context1) + { + var bytes = new byte[] { 10, 20, 30, 40 }; + 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; + var jsArray = await sut.EvaluateAsync("Array.from(new Uint8Array(MyVariable))", typeof(object), context1); + + var resultArray = ((IEnumerable)jsArray).Select(x => Convert.ToByte(x)).ToArray(); + Assert.Equal(bytes, resultArray); + } + + [Theory(DisplayName = "ByteArrayConverter: Should reflect mutation of ArrayBuffer in JS when read back in .NET"), AutoMoqData] + public async Task EvaluateAsync_ShouldReflectJsMutation( + [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; + + await sut.EvaluateAsync("new Uint8Array(MyVariable)[0] = 99", typeof(object), context1); + var jsArray = await sut.EvaluateAsync("Array.from(new Uint8Array(MyVariable))", typeof(object), context1); + + var resultArray = ((IEnumerable)jsArray).Select(x => Convert.ToByte(x)).ToArray(); + var expected = new byte[] { 99, 2, 3, 4 }; + Assert.Equal(expected, resultArray); + } } } \ No newline at end of file