diff --git a/.github/workflows/all-in-one-web.yml b/.github/workflows/all-in-one-web.yml
new file mode 100644
index 000000000..112895052
--- /dev/null
+++ b/.github/workflows/all-in-one-web.yml
@@ -0,0 +1,61 @@
+name: Build and deploy All In One reference application as Docker image
+on:
+ workflow_dispatch:
+ push:
+ branches:
+ - v3
+
+jobs:
+ push_to_registry:
+ name: Push Docker image to Docker Hub
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
+ with:
+ platforms: all
+
+ - name: Set up Docker Buildx
+ id: buildx
+ uses: docker/setup-buildx-action@v2
+
+ - name: Docker meta
+ id: meta
+ uses: docker/metadata-action@v3
+ with:
+ # list of Docker images to use as base name for tags
+ images: |
+ elsaworkflows/elsa-v3
+ flavor: |
+ latest=true
+ # generate Docker tags based on the following events/attributes
+ tags: |
+ type=sha
+
+ - name: Login to DockerHub
+ if: github.event_name != 'pull_request'
+ uses: docker/login-action@v2
+ with:
+ username: ${{ secrets.DOCKER_USER }}
+ password: ${{ secrets.DOCKER_PASS }}
+
+ - name: Build and push
+ id: docker_build
+ uses: docker/build-push-action@v3
+ with:
+ builder: ${{ steps.buildx.outputs.name }}
+ context: .
+ file: ./src/bundles/Elsa.AllInOne.Web/Dockerfile
+ platforms: linux/amd64,linux/arm64,linux/arm/v7
+ push: ${{ github.event_name != 'pull_request' }}
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
+ cache-from: type=local,src=/tmp/.buildx-cache
+ cache-to: type=local,dest=/tmp/.buildx-cache
+
+ - name: Image digest
+ run: echo ${{ steps.docker_build.outputs.digest }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/packages.yml
similarity index 100%
rename from .github/workflows/ci.yml
rename to .github/workflows/packages.yml
diff --git a/Elsa.sln b/Elsa.sln
index e7e8dea6f..34c2e0291 100644
--- a/Elsa.sln
+++ b/Elsa.sln
@@ -12,9 +12,10 @@ ProjectSection(SolutionItems) = preProject
docker-compose.yml = docker-compose.yml
common.props = common.props
configureawait.props = configureawait.props
- .github\workflows\ci.yml = .github\workflows\ci.yml
.gitignore = .gitignore
icon.png = icon.png
+ .github\workflows\packages.yml = .github\workflows\packages.yml
+ .github\workflows\all-in-one-web.yml = .github\workflows\all-in-one-web.yml
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{0354F050-3992-4DD4-B0EE-5FBA04AC72B6}"
@@ -93,9 +94,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Common", "src\modules\
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "worker", "worker", "{389D40B8-005F-46A1-9493-1FE6065F04FD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Persistence.EntityFrameworkCore", "src\modules\Elsa.Persistence.EntityFrameworkCore\Elsa.Persistence.EntityFrameworkCore.csproj", "{7CC95512-7F44-45C3-A669-95B7048D4730}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.EntityFrameworkCore", "src\modules\Elsa.EntityFrameworkCore\Elsa.EntityFrameworkCore.csproj", "{7CC95512-7F44-45C3-A669-95B7048D4730}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Persistence.EntityFrameworkCore.Sqlite", "src\modules\Elsa.Persistence.EntityFrameworkCore.Sqlite\Elsa.Persistence.EntityFrameworkCore.Sqlite.csproj", "{CAC22763-4A1C-4FC5-AC0D-6148927596D6}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.EntityFrameworkCore.Sqlite", "src\modules\Elsa.EntityFrameworkCore.Sqlite\Elsa.EntityFrameworkCore.Sqlite.csproj", "{CAC22763-4A1C-4FC5-AC0D-6148927596D6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Samples.HelloWorld", "src\samples\console\Elsa.Samples.HelloWorld\Elsa.Samples.HelloWorld.csproj", "{D253AFC2-9496-4538-B424-47CC579B7A96}"
EndProject
@@ -111,7 +112,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Samples.TelnyxIntegrat
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Samples.Composition", "src\samples\console\Elsa.Samples.Composition\Elsa.Samples.Composition.csproj", "{1AA0AEFC-BD58-4284-A6C5-AD15C5C79782}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Persistence.EntityFrameworkCore.SqlServer", "src\modules\Elsa.Persistence.EntityFrameworkCore.SqlServer\Elsa.Persistence.EntityFrameworkCore.SqlServer.csproj", "{555A4306-3BAB-409E-8BB8-3171A5867B2C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.EntityFrameworkCore.SqlServer", "src\modules\Elsa.EntityFrameworkCore.SqlServer\Elsa.EntityFrameworkCore.SqlServer.csproj", "{555A4306-3BAB-409E-8BB8-3171A5867B2C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Email", "src\modules\Elsa.Email\Elsa.Email.csproj", "{1E5BD8D9-55BE-41E2-B389-6AB9F26C22AF}"
EndProject
@@ -123,6 +124,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Testing.Shared", "src\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Samples.WorkflowFunctions", "src\samples\console\Elsa.Samples.WorkflowFunctions\Elsa.Samples.WorkflowFunctions.csproj", "{4782CA82-83B0-437E-8C97-636BB8B402EA}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Samples.MyBackendApi", "src\samples\aspnet\Elsa.Samples.MyBackendApi\Elsa.Samples.MyBackendApi.csproj", "{1A37795B-EBAB-4A9F-8CF0-373DA3D4C64A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Samples.WorkflowServer", "src\samples\aspnet\Elsa.Samples.WorkflowServer\Elsa.Samples.WorkflowServer.csproj", "{89157FB8-A25B-42EC-A91F-37DFEE274C8C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Samples.WorkflowDesigner", "src\samples\aspnet\Elsa.Samples.WorkflowDesigner\Elsa.Samples.WorkflowDesigner.csproj", "{812B3B34-D2DD-4A3B-BA2D-3D3C52E0C062}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Samples.WorkflowServerAndDesigner", "src\samples\aspnet\Elsa.Samples.WorkflowServerAndDesigner\Elsa.Samples.WorkflowServerAndDesigner.csproj", "{34FBB2D3-4E2B-4411-95F2-C6B56899826A}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -313,6 +322,22 @@ Global
{4782CA82-83B0-437E-8C97-636BB8B402EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4782CA82-83B0-437E-8C97-636BB8B402EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4782CA82-83B0-437E-8C97-636BB8B402EA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1A37795B-EBAB-4A9F-8CF0-373DA3D4C64A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1A37795B-EBAB-4A9F-8CF0-373DA3D4C64A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1A37795B-EBAB-4A9F-8CF0-373DA3D4C64A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1A37795B-EBAB-4A9F-8CF0-373DA3D4C64A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {89157FB8-A25B-42EC-A91F-37DFEE274C8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {89157FB8-A25B-42EC-A91F-37DFEE274C8C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {89157FB8-A25B-42EC-A91F-37DFEE274C8C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {89157FB8-A25B-42EC-A91F-37DFEE274C8C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {812B3B34-D2DD-4A3B-BA2D-3D3C52E0C062}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {812B3B34-D2DD-4A3B-BA2D-3D3C52E0C062}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {812B3B34-D2DD-4A3B-BA2D-3D3C52E0C062}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {812B3B34-D2DD-4A3B-BA2D-3D3C52E0C062}.Release|Any CPU.Build.0 = Release|Any CPU
+ {34FBB2D3-4E2B-4411-95F2-C6B56899826A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {34FBB2D3-4E2B-4411-95F2-C6B56899826A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {34FBB2D3-4E2B-4411-95F2-C6B56899826A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {34FBB2D3-4E2B-4411-95F2-C6B56899826A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{155227F0-A33B-40AA-A4B4-06F813EB921B} = {61017E64-6D00-49CB-9E81-5002DC8F7D5F}
@@ -368,5 +393,9 @@ Global
{DF8CCA17-6B00-42C6-B4EC-61B42AA91EE0} = {56C2FFB8-EA54-45B5-A095-4A78142EB4B5}
{AD8C4BB0-C78F-496C-B326-1D82C02C7568} = {C6658DE0-2B2F-47F0-BB61-2CA66D435C09}
{4782CA82-83B0-437E-8C97-636BB8B402EA} = {873BFC3E-63C2-4495-A503-5EC05DCD84E4}
+ {1A37795B-EBAB-4A9F-8CF0-373DA3D4C64A} = {56C2FFB8-EA54-45B5-A095-4A78142EB4B5}
+ {89157FB8-A25B-42EC-A91F-37DFEE274C8C} = {56C2FFB8-EA54-45B5-A095-4A78142EB4B5}
+ {812B3B34-D2DD-4A3B-BA2D-3D3C52E0C062} = {56C2FFB8-EA54-45B5-A095-4A78142EB4B5}
+ {34FBB2D3-4E2B-4411-95F2-C6B56899826A} = {56C2FFB8-EA54-45B5-A095-4A78142EB4B5}
EndGlobalSection
EndGlobal
diff --git a/Elsa.sln.DotSettings b/Elsa.sln.DotSettings
index 7d09ab128..7c0987563 100644
--- a/Elsa.sln.DotSettings
+++ b/Elsa.sln.DotSettings
@@ -1,2 +1,4 @@
+ True
+ True
True
\ No newline at end of file
diff --git a/src/bundles/Elsa.AllInOne.Web/Elsa.AllInOne.Web.csproj b/src/bundles/Elsa.AllInOne.Web/Elsa.AllInOne.Web.csproj
index a903315fd..95a98eddb 100644
--- a/src/bundles/Elsa.AllInOne.Web/Elsa.AllInOne.Web.csproj
+++ b/src/bundles/Elsa.AllInOne.Web/Elsa.AllInOne.Web.csproj
@@ -16,8 +16,8 @@
-
-
+
+
diff --git a/src/bundles/Elsa.AllInOne.Web/Program.cs b/src/bundles/Elsa.AllInOne.Web/Program.cs
index aba5d9d47..c7e6d3a6a 100644
--- a/src/bundles/Elsa.AllInOne.Web/Program.cs
+++ b/src/bundles/Elsa.AllInOne.Web/Program.cs
@@ -1,38 +1,29 @@
using Elsa.Extensions;
using Elsa.Jobs.Extensions;
-using Elsa.Http;
using Elsa.Http.Extensions;
using Elsa.Identity;
using Elsa.Identity.Extensions;
-using Elsa.Identity.Features;
using Elsa.Identity.Options;
-using Elsa.JavaScript.Activities;
using Elsa.JavaScript.Extensions;
using Elsa.Labels.Extensions;
-using Elsa.Scheduling.Activities;
using Elsa.Liquid.Extensions;
-using Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Labels;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Runtime;
-using Elsa.Persistence.EntityFrameworkCore.Sqlite.Modules.ActivityDefinitions;
-using Elsa.Persistence.EntityFrameworkCore.Sqlite.Modules.Labels;
-using Elsa.Persistence.EntityFrameworkCore.Sqlite.Modules.Runtime;
+using Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
+using Elsa.EntityFrameworkCore.Modules.Labels;
+using Elsa.EntityFrameworkCore.Modules.Runtime;
+using Elsa.EntityFrameworkCore.Sqlite.Modules.ActivityDefinitions;
+using Elsa.EntityFrameworkCore.Sqlite.Modules.Labels;
+using Elsa.EntityFrameworkCore.Sqlite.Modules.Runtime;
using Elsa.Requirements;
using Elsa.Scheduling.Extensions;
-using Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.Post;
-using Elsa.Workflows.Api.Features;
using Elsa.Workflows.Core;
-using Elsa.Workflows.Core.Activities;
-using Elsa.Workflows.Management.Extensions;
using Elsa.Workflows.Runtime.Extensions;
-using FastEndpoints;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
var builder = WebApplication.CreateBuilder(args);
var services = builder.Services;
var configuration = builder.Configuration;
-var sqliteConnectionString = configuration.GetConnectionString("Sqlite");
+var sqliteConnectionString = configuration.GetConnectionString("Sqlite")!;
var identityOptions = new IdentityOptions();
var identitySection = configuration.GetSection("Identity");
identitySection.Bind(identityOptions);
@@ -41,19 +32,13 @@ identitySection.Bind(identityOptions);
services
.AddElsa(elsa => elsa
.UseWorkflows()
- .UseWorkflowRuntime()
- .UseWorkflowManagement(management => management
- .AddActivitiesFrom()
- .AddActivitiesFrom()
- .AddActivitiesFrom()
- .AddActivitiesFrom()
- )
- .UseWorkflowApiEndpoints()
+ .UseWorkflowsApi()
.UseIdentity(identity =>
{
identity.CreateDefaultUser = true;
- identity.IdentityOptions = options => identitySection.Bind(options);
+ identity.IdentityOptions = identityOptions;
})
+ .UseDefaultAuthentication()
.UseWorkflowRuntime(runtime => { runtime.UseEntityFrameworkCore(ef => ef.UseSqlite(sqliteConnectionString)); })
.UseLabels(labels => labels.UseEntityFrameworkCore(ef => ef.UseSqlite(sqliteConnectionString)))
.UseActivityDefinitions(feature => feature.UseEntityFrameworkCore(ef => ef.UseSqlite(sqliteConnectionString)))
@@ -62,16 +47,9 @@ services
.UseJavaScript()
.UseLiquid()
.UseHttp()
- .UseActivityDefinitions()
);
services.AddHealthChecks();
-
-// Authentication & Authorization.
-services
- .AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
- .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, identityOptions.ConfigureJwtBearerOptions);
-
services.AddHttpContextAccessor();
services.AddSingleton();
services.AddAuthorization(options => options.AddPolicy(IdentityPolicyNames.SecurityRoot, policy => policy.AddRequirements(new LocalHostRequirement())));
@@ -95,8 +73,8 @@ app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
-app.UseElsaFastEndpoints();
-app.UseHttpActivities();
+app.UseWorkflowsApi();
+app.UseWorkflows();
app.UseEndpoints(endpoints =>
{
diff --git a/src/bundles/Elsa.WorkflowServer.Web/Elsa.WorkflowServer.Web.csproj b/src/bundles/Elsa.WorkflowServer.Web/Elsa.WorkflowServer.Web.csproj
index 452911c4a..c1c67dcb5 100644
--- a/src/bundles/Elsa.WorkflowServer.Web/Elsa.WorkflowServer.Web.csproj
+++ b/src/bundles/Elsa.WorkflowServer.Web/Elsa.WorkflowServer.Web.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/src/bundles/Elsa.WorkflowServer.Web/Program.cs b/src/bundles/Elsa.WorkflowServer.Web/Program.cs
index bffbd39f8..72ea43bba 100644
--- a/src/bundles/Elsa.WorkflowServer.Web/Program.cs
+++ b/src/bundles/Elsa.WorkflowServer.Web/Program.cs
@@ -13,16 +13,16 @@ using Elsa.Jobs.Activities.Services;
using Elsa.Jobs.Extensions;
using Elsa.Labels.Extensions;
using Elsa.Liquid.Extensions;
-using Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Labels;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Management;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Runtime;
-using Elsa.Persistence.EntityFrameworkCore.Sqlite.Modules.ActivityDefinitions;
-using Elsa.Persistence.EntityFrameworkCore.Sqlite.Modules.Labels;
-using Elsa.Persistence.EntityFrameworkCore.Sqlite.Modules.Management;
-using Elsa.Persistence.EntityFrameworkCore.Sqlite.Modules.Runtime;
-using Elsa.ProtoActor.Extensions;
+using Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
+using Elsa.EntityFrameworkCore.Modules.Labels;
+using Elsa.EntityFrameworkCore.Modules.Management;
+using Elsa.EntityFrameworkCore.Modules.Runtime;
+using Elsa.EntityFrameworkCore.Sqlite.Modules.ActivityDefinitions;
+using Elsa.EntityFrameworkCore.Sqlite.Modules.Labels;
+using Elsa.EntityFrameworkCore.Sqlite.Modules.Management;
+using Elsa.EntityFrameworkCore.Sqlite.Modules.Runtime;
using Elsa.Requirements;
+using Elsa.Scheduling.Activities;
using Elsa.Scheduling.Extensions;
using Elsa.WorkflowContexts.Extensions;
using Elsa.Workflows.Api.Extensions;
@@ -32,17 +32,13 @@ using Elsa.Workflows.Core.Middleware.Workflows;
using Elsa.Workflows.Management.Extensions;
using Elsa.Workflows.Management.Services;
using Elsa.Workflows.Runtime.Extensions;
-using Elsa.Workflows.Runtime.Implementations;
using Elsa.WorkflowServer.Web.Jobs;
-using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
-using Microsoft.Data.Sqlite;
-using Proto.Persistence.Sqlite;
var builder = WebApplication.CreateBuilder(args);
var services = builder.Services;
var configuration = builder.Configuration;
-var sqliteConnectionString = configuration.GetConnectionString("Sqlite");
+var sqliteConnectionString = configuration.GetConnectionString("Sqlite")!;
var identityOptions = new IdentityOptions();
var identitySection = configuration.GetSection("Identity");
identitySection.Bind(identityOptions);
@@ -54,27 +50,27 @@ services
.UseEntityFrameworkCore(ef => ef.UseSqlite(sqliteConnectionString))
.AddActivitiesFrom()
.AddActivitiesFrom()
- .AddActivitiesFrom()
+ .AddActivitiesFrom()
.AddActivitiesFrom()
.AddActivitiesFrom()
)
.UseIdentity(identity =>
{
identity.CreateDefaultUser = true;
- identity.IdentityOptions = options => identitySection.Bind(options);
+ identity.IdentityOptions = identityOptions;
})
+ .UseDefaultAuthentication()
.UseWorkflowRuntime(runtime =>
{
//runtime.UseProtoActor(proto => proto.PersistenceProvider = _ => new SqliteProvider(new SqliteConnectionStringBuilder(sqliteConnectionString)));
runtime.UseEntityFrameworkCore(ef => ef.UseSqlite(sqliteConnectionString));
- //runtime.WorkflowStateExporter = sp => sp.GetRequiredService();
})
.UseLabels(labels => labels.UseEntityFrameworkCore(ef => ef.UseSqlite(sqliteConnectionString)))
.UseActivityDefinitions(feature => feature.UseEntityFrameworkCore(ef => ef.UseSqlite(sqliteConnectionString)))
.UseJobs(jobs => jobs.ConfigureOptions = options => options.WorkerCount = 10)
.UseJobActivities()
.UseScheduling()
- .UseWorkflowApiEndpoints()
+ .UseWorkflowsApi()
.UseJavaScript()
.UseLiquid()
.UseHttp()
@@ -82,12 +78,6 @@ services
services.AddHealthChecks();
services.AddCors(cors => cors.AddDefaultPolicy(policy => policy.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin()));
-
-// Authentication & Authorization.
-services
- .AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
- .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, identityOptions.ConfigureJwtBearerOptions);
-
services.AddHttpContextAccessor();
services.AddSingleton();
services.AddAuthorization(options => options.AddPolicy(IdentityPolicyNames.SecurityRoot, policy => policy.AddRequirements(new LocalHostRequirement())));
@@ -131,9 +121,9 @@ app.UseAuthentication();
app.UseAuthorization();
// Register Elsa middleware.
-app.UseElsaFastEndpoints();
+app.UseWorkflowsApi();
app.UseJsonSerializationErrorHandler();
-app.UseHttpActivities();
+app.UseWorkflows();
// Run.
app.Run();
\ No newline at end of file
diff --git a/src/bundles/Elsa/Features/ElsaFeature.cs b/src/bundles/Elsa/Features/ElsaFeature.cs
index 3027fc8e9..cfb698967 100644
--- a/src/bundles/Elsa/Features/ElsaFeature.cs
+++ b/src/bundles/Elsa/Features/ElsaFeature.cs
@@ -2,7 +2,9 @@ using Elsa.Features.Abstractions;
using Elsa.Features.Attributes;
using Elsa.Features.Services;
using Elsa.Mediator.Features;
+using Elsa.Workflows.Core.Activities;
using Elsa.Workflows.Core.Features;
+using Elsa.Workflows.Management.Extensions;
using Elsa.Workflows.Management.Features;
using Elsa.Workflows.Runtime.Features;
@@ -18,8 +20,19 @@ namespace Elsa.Features;
[DependsOn(typeof(WorkflowManagementFeature))]
public class ElsaFeature : FeatureBase
{
+ ///
+ /// Set this to true to opt out of automatically registering activities from Elsa.Workflows.Core.
+ ///
+ public bool DisableAutomaticActivityRegistration { get; set; }
+
///
public ElsaFeature(IModule module) : base(module)
{
}
+
+ ///
+ public override void Configure()
+ {
+ Module.UseWorkflowManagement(management => management.AddActivitiesFrom());
+ }
}
\ No newline at end of file
diff --git a/src/common/Elsa.Api.Common/Extensions/WebApplicationExtensions.cs b/src/common/Elsa.Api.Common/Extensions/WebApplicationExtensions.cs
index 59a82b6e0..554378e28 100644
--- a/src/common/Elsa.Api.Common/Extensions/WebApplicationExtensions.cs
+++ b/src/common/Elsa.Api.Common/Extensions/WebApplicationExtensions.cs
@@ -19,7 +19,7 @@ public static class WebApplicationExtensions
///
/// The route prefix to apply to Elsa API endpoints.
/// E.g. "elsa/api" will expose endpoints like this: "/elsa/api/workflow-definitions"
- public static IApplicationBuilder UseElsaFastEndpoints(this IApplicationBuilder app, string routePrefix = "elsa/api") =>
+ public static IApplicationBuilder UseWorkflowsApi(this IApplicationBuilder app, string routePrefix = "elsa/api") =>
app.UseFastEndpoints(config =>
{
config.Endpoints.RoutePrefix = routePrefix;
diff --git a/src/common/Elsa.Features/Implementations/Module.cs b/src/common/Elsa.Features/Implementations/Module.cs
index 7e4bce663..38ce7ce1b 100644
--- a/src/common/Elsa.Features/Implementations/Module.cs
+++ b/src/common/Elsa.Features/Implementations/Module.cs
@@ -13,7 +13,7 @@ public class Module : IModule
{
private record HostedServiceDescriptor(int Order, Type HostedServiceType);
- private readonly ISet _features = new HashSet();
+ private ISet _features = new HashSet();
private readonly ICollection _hostedServiceDescriptors = new List();
///
@@ -59,6 +59,9 @@ public class Module : IModule
var featureTypes = _features.Select(x => x.GetType()).TSort(x => x.GetCustomAttributes().Select(dependsOn => dependsOn.Type)).ToList();
var features = featureTypes.Select(featureType => _features.FirstOrDefault(x => x.GetType() == featureType) ?? (IFeature)Activator.CreateInstance(featureType, this)!).ToList();
+ // Update list with complete list of features. This is important because during the Configure phase, dependent features might configure other features, which should not be created as new instances.
+ _features = features.ToHashSet();
+
foreach (var feature in features)
{
feature.Configure();
diff --git a/src/designer/elsa-workflows-designer/package.json b/src/designer/elsa-workflows-designer/package.json
index 51301beff..c4a6c582e 100644
--- a/src/designer/elsa-workflows-designer/package.json
+++ b/src/designer/elsa-workflows-designer/package.json
@@ -1,6 +1,6 @@
{
"name": "@elsa-workflows/elsa-workflows-designer",
- "version": "3.0.2-preview.11",
+ "version": "3.0.2-preview.12",
"description": "A workflow designer for Elsa 3",
"main": "./dist/index.cjs.js",
"module": "./dist/index.js",
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Abstractions/SqlServerDesignTimeDbContextFactoryBase.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Abstractions/SqlServerDesignTimeDbContextFactoryBase.cs
similarity index 80%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Abstractions/SqlServerDesignTimeDbContextFactoryBase.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Abstractions/SqlServerDesignTimeDbContextFactoryBase.cs
index f979c832c..e16548584 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Abstractions/SqlServerDesignTimeDbContextFactoryBase.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Abstractions/SqlServerDesignTimeDbContextFactoryBase.cs
@@ -1,8 +1,8 @@
-using Elsa.Persistence.EntityFrameworkCore.SqlServer.Extensions;
+using Elsa.EntityFrameworkCore.SqlServer.Extensions;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Abstractions;
+namespace Elsa.EntityFrameworkCore.SqlServer.Abstractions;
public abstract class SqlServerDesignTimeDbContextFactoryBase : IDesignTimeDbContextFactory where TDbContext : DbContext
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Elsa.Persistence.EntityFrameworkCore.SqlServer.csproj b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Elsa.EntityFrameworkCore.SqlServer.csproj
similarity index 91%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Elsa.Persistence.EntityFrameworkCore.SqlServer.csproj
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Elsa.EntityFrameworkCore.SqlServer.csproj
index c946dcebc..8afb22c1e 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Elsa.Persistence.EntityFrameworkCore.SqlServer.csproj
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Elsa.EntityFrameworkCore.SqlServer.csproj
@@ -28,7 +28,7 @@
-
+
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Extensions/DbContextOptionsBuilderExtensions.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Extensions/DbContextOptionsBuilderExtensions.cs
similarity index 84%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Extensions/DbContextOptionsBuilderExtensions.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Extensions/DbContextOptionsBuilderExtensions.cs
index ddb881339..c8ab54052 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Extensions/DbContextOptionsBuilderExtensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Extensions/DbContextOptionsBuilderExtensions.cs
@@ -1,8 +1,8 @@
-using Elsa.Persistence.EntityFrameworkCore.Common;
+using Elsa.EntityFrameworkCore.Common;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Extensions;
+namespace Elsa.EntityFrameworkCore.SqlServer.Extensions;
public static class DbContextOptionsBuilderExtensions
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/FodyWeavers.xml b/src/modules/Elsa.EntityFrameworkCore.SqlServer/FodyWeavers.xml
similarity index 100%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/FodyWeavers.xml
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/FodyWeavers.xml
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/20221120175908_Initial.Designer.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/20221120175908_Initial.Designer.cs
similarity index 94%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/20221120175908_Initial.Designer.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/20221120175908_Initial.Designer.cs
index 0e452a2af..29e88ca1e 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/20221120175908_Initial.Designer.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/20221120175908_Initial.Designer.cs
@@ -1,6 +1,6 @@
//
using System;
-using Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
+using Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
@@ -9,7 +9,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Migrations.ActivityDefinitions
+namespace Elsa.EntityFrameworkCore.SqlServer.Migrations.ActivityDefinitions
{
[DbContext(typeof(ActivityDefinitionsElsaDbContext))]
[Migration("20221120175908_Initial")]
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/20221120175908_Initial.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/20221120175908_Initial.cs
similarity index 97%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/20221120175908_Initial.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/20221120175908_Initial.cs
index c9ee83f67..181ab61d8 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/20221120175908_Initial.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/20221120175908_Initial.cs
@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Migrations.ActivityDefinitions
+namespace Elsa.EntityFrameworkCore.SqlServer.Migrations.ActivityDefinitions
{
public partial class Initial : Migration
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/ActivityDefinitionsElsaDbContextModelSnapshot.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/ActivityDefinitionsElsaDbContextModelSnapshot.cs
similarity index 94%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/ActivityDefinitionsElsaDbContextModelSnapshot.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/ActivityDefinitionsElsaDbContextModelSnapshot.cs
index f168d85cc..68767064f 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/ActivityDefinitionsElsaDbContextModelSnapshot.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/ActivityDefinitions/ActivityDefinitionsElsaDbContextModelSnapshot.cs
@@ -1,6 +1,6 @@
//
using System;
-using Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
+using Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Migrations.ActivityDefinitions
+namespace Elsa.EntityFrameworkCore.SqlServer.Migrations.ActivityDefinitions
{
[DbContext(typeof(ActivityDefinitionsElsaDbContext))]
partial class ActivityDefinitionsElsaDbContextModelSnapshot : ModelSnapshot
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Labels/20221120175911_Initial.Designer.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Labels/20221120175911_Initial.Designer.cs
similarity index 95%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Labels/20221120175911_Initial.Designer.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Labels/20221120175911_Initial.Designer.cs
index b6f48a8a2..e9de11fae 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Labels/20221120175911_Initial.Designer.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Labels/20221120175911_Initial.Designer.cs
@@ -1,5 +1,5 @@
//
-using Elsa.Persistence.EntityFrameworkCore.Modules.Labels;
+using Elsa.EntityFrameworkCore.Modules.Labels;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Migrations.Labels
+namespace Elsa.EntityFrameworkCore.SqlServer.Migrations.Labels
{
[DbContext(typeof(LabelsElsaDbContext))]
[Migration("20221120175911_Initial")]
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Labels/20221120175911_Initial.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Labels/20221120175911_Initial.cs
similarity index 97%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Labels/20221120175911_Initial.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Labels/20221120175911_Initial.cs
index 96aa63648..195797a4e 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Labels/20221120175911_Initial.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Labels/20221120175911_Initial.cs
@@ -2,7 +2,7 @@
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Migrations.Labels
+namespace Elsa.EntityFrameworkCore.SqlServer.Migrations.Labels
{
public partial class Initial : Migration
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Labels/LabelsElsaDbContextModelSnapshot.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Labels/LabelsElsaDbContextModelSnapshot.cs
similarity index 95%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Labels/LabelsElsaDbContextModelSnapshot.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Labels/LabelsElsaDbContextModelSnapshot.cs
index 4c3df73f8..441e12257 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Labels/LabelsElsaDbContextModelSnapshot.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Labels/LabelsElsaDbContextModelSnapshot.cs
@@ -1,5 +1,5 @@
//
-using Elsa.Persistence.EntityFrameworkCore.Modules.Labels;
+using Elsa.EntityFrameworkCore.Modules.Labels;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
@@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Migrations.Labels
+namespace Elsa.EntityFrameworkCore.SqlServer.Migrations.Labels
{
[DbContext(typeof(LabelsElsaDbContext))]
partial class LabelsElsaDbContextModelSnapshot : ModelSnapshot
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Management/20221120175914_Initial.Designer.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Management/20221120175914_Initial.Designer.cs
similarity index 97%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Management/20221120175914_Initial.Designer.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Management/20221120175914_Initial.Designer.cs
index b9d3d339d..d80ff7f94 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Management/20221120175914_Initial.Designer.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Management/20221120175914_Initial.Designer.cs
@@ -1,6 +1,6 @@
//
using System;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Management;
+using Elsa.EntityFrameworkCore.Modules.Management;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
@@ -9,7 +9,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Migrations.Management
+namespace Elsa.EntityFrameworkCore.SqlServer.Migrations.Management
{
[DbContext(typeof(ManagementElsaDbContext))]
[Migration("20221120175914_Initial")]
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Management/20221120175914_Initial.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Management/20221120175914_Initial.cs
similarity index 99%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Management/20221120175914_Initial.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Management/20221120175914_Initial.cs
index b2f3cb09b..6345d3a0a 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Management/20221120175914_Initial.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Management/20221120175914_Initial.cs
@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Migrations.Management
+namespace Elsa.EntityFrameworkCore.SqlServer.Migrations.Management
{
public partial class Initial : Migration
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Management/ManagementElsaDbContextModelSnapshot.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Management/ManagementElsaDbContextModelSnapshot.cs
similarity index 97%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Management/ManagementElsaDbContextModelSnapshot.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Management/ManagementElsaDbContextModelSnapshot.cs
index 7c136b770..0184a7f4f 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Management/ManagementElsaDbContextModelSnapshot.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Management/ManagementElsaDbContextModelSnapshot.cs
@@ -1,6 +1,6 @@
//
using System;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Management;
+using Elsa.EntityFrameworkCore.Modules.Management;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Migrations.Management
+namespace Elsa.EntityFrameworkCore.SqlServer.Migrations.Management
{
[DbContext(typeof(ManagementElsaDbContext))]
partial class ManagementElsaDbContextModelSnapshot : ModelSnapshot
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Runtime/20221120175917_Initial.Designer.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Runtime/20221120175917_Initial.Designer.cs
similarity index 98%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Runtime/20221120175917_Initial.Designer.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Runtime/20221120175917_Initial.Designer.cs
index bcc604551..aec9f7a77 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Runtime/20221120175917_Initial.Designer.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Runtime/20221120175917_Initial.Designer.cs
@@ -1,6 +1,6 @@
//
using System;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Runtime;
+using Elsa.EntityFrameworkCore.Modules.Runtime;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
@@ -9,7 +9,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Migrations.Runtime
+namespace Elsa.EntityFrameworkCore.SqlServer.Migrations.Runtime
{
[DbContext(typeof(RuntimeElsaDbContext))]
[Migration("20221120175917_Initial")]
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Runtime/20221120175917_Initial.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Runtime/20221120175917_Initial.cs
similarity index 99%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Runtime/20221120175917_Initial.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Runtime/20221120175917_Initial.cs
index 27faa1cd5..97b6743b5 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Runtime/20221120175917_Initial.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Runtime/20221120175917_Initial.cs
@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Migrations.Runtime
+namespace Elsa.EntityFrameworkCore.SqlServer.Migrations.Runtime
{
public partial class Initial : Migration
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs
similarity index 98%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs
index 2ce00144c..59a630d3c 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs
@@ -1,6 +1,6 @@
//
using System;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Runtime;
+using Elsa.EntityFrameworkCore.Modules.Runtime;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Migrations.Runtime
+namespace Elsa.EntityFrameworkCore.SqlServer.Migrations.Runtime
{
[DbContext(typeof(RuntimeElsaDbContext))]
partial class RuntimeElsaDbContextModelSnapshot : ModelSnapshot
diff --git a/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/ActivityDefinitions/DesignTimeDbContextFactory.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/ActivityDefinitions/DesignTimeDbContextFactory.cs
new file mode 100644
index 000000000..4f72b886b
--- /dev/null
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/ActivityDefinitions/DesignTimeDbContextFactory.cs
@@ -0,0 +1,9 @@
+using Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
+using Elsa.EntityFrameworkCore.SqlServer.Abstractions;
+
+namespace Elsa.EntityFrameworkCore.SqlServer.Modules.ActivityDefinitions;
+
+// ReSharper disable once UnusedType.Global
+public class DesignTimeDbContextFactory : SqlServerDesignTimeDbContextFactoryBase
+{
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Modules/ActivityDefinitions/Extensions.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/ActivityDefinitions/Extensions.cs
similarity index 58%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Modules/ActivityDefinitions/Extensions.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/ActivityDefinitions/Extensions.cs
index 0f4991eaa..642172372 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Modules/ActivityDefinitions/Extensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/ActivityDefinitions/Extensions.cs
@@ -1,7 +1,7 @@
-using Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
-using Elsa.Persistence.EntityFrameworkCore.SqlServer.Extensions;
+using Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
+using Elsa.EntityFrameworkCore.SqlServer.Extensions;
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Modules.ActivityDefinitions;
+namespace Elsa.EntityFrameworkCore.SqlServer.Modules.ActivityDefinitions;
public static class Extensions
{
diff --git a/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Labels/DesignTimeDbContextFactory.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Labels/DesignTimeDbContextFactory.cs
new file mode 100644
index 000000000..046dd4657
--- /dev/null
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Labels/DesignTimeDbContextFactory.cs
@@ -0,0 +1,9 @@
+using Elsa.EntityFrameworkCore.Modules.Labels;
+using Elsa.EntityFrameworkCore.SqlServer.Abstractions;
+
+namespace Elsa.EntityFrameworkCore.SqlServer.Modules.Labels;
+
+// ReSharper disable once UnusedType.Global
+public class DesignTimeDbContextFactory : SqlServerDesignTimeDbContextFactoryBase
+{
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Modules/Labels/Extensions.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Labels/Extensions.cs
similarity index 59%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Modules/Labels/Extensions.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Labels/Extensions.cs
index 89f52e6a1..cabd101fd 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Modules/Labels/Extensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Labels/Extensions.cs
@@ -1,7 +1,7 @@
-using Elsa.Persistence.EntityFrameworkCore.Modules.Labels;
-using Elsa.Persistence.EntityFrameworkCore.SqlServer.Extensions;
+using Elsa.EntityFrameworkCore.Modules.Labels;
+using Elsa.EntityFrameworkCore.SqlServer.Extensions;
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Modules.Labels;
+namespace Elsa.EntityFrameworkCore.SqlServer.Modules.Labels;
public static class Extensions
{
diff --git a/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Management/DesignTimeDbContextFactory.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Management/DesignTimeDbContextFactory.cs
new file mode 100644
index 000000000..cb785ea47
--- /dev/null
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Management/DesignTimeDbContextFactory.cs
@@ -0,0 +1,9 @@
+using Elsa.EntityFrameworkCore.Modules.Management;
+using Elsa.EntityFrameworkCore.SqlServer.Abstractions;
+
+namespace Elsa.EntityFrameworkCore.SqlServer.Modules.Management;
+
+// ReSharper disable once UnusedType.Global
+public class DesignTimeDbContextFactory : SqlServerDesignTimeDbContextFactoryBase
+{
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Modules/Management/Extensions.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Management/Extensions.cs
similarity index 59%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Modules/Management/Extensions.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Management/Extensions.cs
index 329aae535..4e9d0abd5 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Modules/Management/Extensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Management/Extensions.cs
@@ -1,7 +1,7 @@
-using Elsa.Persistence.EntityFrameworkCore.Modules.Management;
-using Elsa.Persistence.EntityFrameworkCore.SqlServer.Extensions;
+using Elsa.EntityFrameworkCore.Modules.Management;
+using Elsa.EntityFrameworkCore.SqlServer.Extensions;
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Modules.Management;
+namespace Elsa.EntityFrameworkCore.SqlServer.Modules.Management;
public static class Extensions
{
diff --git a/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Runtime/DesignTimeDbContextFactory.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Runtime/DesignTimeDbContextFactory.cs
new file mode 100644
index 000000000..a04049e49
--- /dev/null
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Runtime/DesignTimeDbContextFactory.cs
@@ -0,0 +1,9 @@
+using Elsa.EntityFrameworkCore.Modules.Runtime;
+using Elsa.EntityFrameworkCore.SqlServer.Abstractions;
+
+namespace Elsa.EntityFrameworkCore.SqlServer.Modules.Runtime;
+
+// ReSharper disable once UnusedType.Global
+public class DesignTimeRuntimeDbContextFactory : SqlServerDesignTimeDbContextFactoryBase
+{
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Modules/Runtime/Extensions.cs b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Runtime/Extensions.cs
similarity index 59%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Modules/Runtime/Extensions.cs
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Runtime/Extensions.cs
index 19b32ec1e..0eea0e3cb 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/Modules/Runtime/Extensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.SqlServer/Modules/Runtime/Extensions.cs
@@ -1,7 +1,7 @@
-using Elsa.Persistence.EntityFrameworkCore.Modules.Runtime;
-using Elsa.Persistence.EntityFrameworkCore.SqlServer.Extensions;
+using Elsa.EntityFrameworkCore.Modules.Runtime;
+using Elsa.EntityFrameworkCore.SqlServer.Extensions;
-namespace Elsa.Persistence.EntityFrameworkCore.SqlServer.Modules.Runtime;
+namespace Elsa.EntityFrameworkCore.SqlServer.Modules.Runtime;
public static class Extensions
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/generate-migrations.cmd b/src/modules/Elsa.EntityFrameworkCore.SqlServer/generate-migrations.cmd
similarity index 100%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/generate-migrations.cmd
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/generate-migrations.cmd
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/generate-migrations.sh b/src/modules/Elsa.EntityFrameworkCore.SqlServer/generate-migrations.sh
similarity index 100%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.SqlServer/generate-migrations.sh
rename to src/modules/Elsa.EntityFrameworkCore.SqlServer/generate-migrations.sh
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Abstractions/SqliteDesignTimeDbContextFactoryBase.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Abstractions/SqliteDesignTimeDbContextFactoryBase.cs
similarity index 81%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Abstractions/SqliteDesignTimeDbContextFactoryBase.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Abstractions/SqliteDesignTimeDbContextFactoryBase.cs
index 9cf99157c..0e5d2d480 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Abstractions/SqliteDesignTimeDbContextFactoryBase.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Abstractions/SqliteDesignTimeDbContextFactoryBase.cs
@@ -1,8 +1,8 @@
-using Elsa.Persistence.EntityFrameworkCore.Sqlite.Extensions;
+using Elsa.EntityFrameworkCore.Sqlite.Extensions;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Abstractions;
+namespace Elsa.EntityFrameworkCore.Sqlite.Abstractions;
public abstract class SqliteDesignTimeDbContextFactoryBase : IDesignTimeDbContextFactory where TDbContext : DbContext
{
diff --git a/src/modules/Elsa.EntityFrameworkCore.Sqlite/Constants.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Constants.cs
new file mode 100644
index 000000000..d596766a6
--- /dev/null
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Constants.cs
@@ -0,0 +1,12 @@
+namespace Elsa.EntityFrameworkCore.Sqlite;
+
+///
+/// Constants.
+///
+public class Constants
+{
+ ///
+ /// Default connection string for SQLite.
+ ///
+ public const string DefaultConnectionString = "Data Source=elsa.sqlite.db;Cache=Shared;";
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Elsa.Persistence.EntityFrameworkCore.Sqlite.csproj b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Elsa.EntityFrameworkCore.Sqlite.csproj
similarity index 82%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Elsa.Persistence.EntityFrameworkCore.Sqlite.csproj
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Elsa.EntityFrameworkCore.Sqlite.csproj
index bcc47a993..1c3519d70 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Elsa.Persistence.EntityFrameworkCore.Sqlite.csproj
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Elsa.EntityFrameworkCore.Sqlite.csproj
@@ -13,6 +13,7 @@
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -21,6 +22,7 @@
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -28,7 +30,7 @@
-
+
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Extensions/DbContextOptionsBuilderExtensions.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Extensions/DbContextOptionsBuilderExtensions.cs
similarity index 85%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Extensions/DbContextOptionsBuilderExtensions.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Extensions/DbContextOptionsBuilderExtensions.cs
index 20de7b974..bd4b64d65 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Extensions/DbContextOptionsBuilderExtensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Extensions/DbContextOptionsBuilderExtensions.cs
@@ -1,8 +1,8 @@
-using Elsa.Persistence.EntityFrameworkCore.Common;
+using Elsa.EntityFrameworkCore.Common;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Extensions;
+namespace Elsa.EntityFrameworkCore.Sqlite.Extensions;
public static class DbContextOptionsBuilderExtensions
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/FodyWeavers.xml b/src/modules/Elsa.EntityFrameworkCore.Sqlite/FodyWeavers.xml
similarity index 100%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/FodyWeavers.xml
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/FodyWeavers.xml
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/20221120175500_Initial.Designer.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/20221120175500_Initial.Designer.cs
similarity index 94%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/20221120175500_Initial.Designer.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/20221120175500_Initial.Designer.cs
index 92e3b818b..7fb36e94c 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/20221120175500_Initial.Designer.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/20221120175500_Initial.Designer.cs
@@ -1,5 +1,5 @@
//
-using Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
+using Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
@@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Migrations.ActivityDefinitions
+namespace Elsa.EntityFrameworkCore.Sqlite.Migrations.ActivityDefinitions
{
[DbContext(typeof(ActivityDefinitionsElsaDbContext))]
[Migration("20221120175500_Initial")]
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/20221120175500_Initial.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/20221120175500_Initial.cs
similarity index 96%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/20221120175500_Initial.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/20221120175500_Initial.cs
index c203583af..3cf5d50c7 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/20221120175500_Initial.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/20221120175500_Initial.cs
@@ -2,7 +2,7 @@
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Migrations.ActivityDefinitions
+namespace Elsa.EntityFrameworkCore.Sqlite.Migrations.ActivityDefinitions
{
public partial class Initial : Migration
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/ActivityDefinitionsElsaDbContextModelSnapshot.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/ActivityDefinitionsElsaDbContextModelSnapshot.cs
similarity index 94%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/ActivityDefinitionsElsaDbContextModelSnapshot.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/ActivityDefinitionsElsaDbContextModelSnapshot.cs
index 4d177e7b6..74a17f48c 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/ActivityDefinitionsElsaDbContextModelSnapshot.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/ActivityDefinitions/ActivityDefinitionsElsaDbContextModelSnapshot.cs
@@ -1,12 +1,12 @@
//
-using Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
+using Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Migrations.ActivityDefinitions
+namespace Elsa.EntityFrameworkCore.Sqlite.Migrations.ActivityDefinitions
{
[DbContext(typeof(ActivityDefinitionsElsaDbContext))]
partial class ActivityDefinitionsElsaDbContextModelSnapshot : ModelSnapshot
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Labels/20221120175503_Initial.Designer.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Labels/20221120175503_Initial.Designer.cs
similarity index 95%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Labels/20221120175503_Initial.Designer.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Labels/20221120175503_Initial.Designer.cs
index 32d8e01e7..a17e8f1e6 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Labels/20221120175503_Initial.Designer.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Labels/20221120175503_Initial.Designer.cs
@@ -1,5 +1,5 @@
//
-using Elsa.Persistence.EntityFrameworkCore.Modules.Labels;
+using Elsa.EntityFrameworkCore.Modules.Labels;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
@@ -7,7 +7,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Migrations.Labels
+namespace Elsa.EntityFrameworkCore.Sqlite.Migrations.Labels
{
[DbContext(typeof(LabelsElsaDbContext))]
[Migration("20221120175503_Initial")]
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Labels/20221120175503_Initial.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Labels/20221120175503_Initial.cs
similarity index 97%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Labels/20221120175503_Initial.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Labels/20221120175503_Initial.cs
index 449ecf1d1..31c4a0a37 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Labels/20221120175503_Initial.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Labels/20221120175503_Initial.cs
@@ -2,7 +2,7 @@
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Migrations.Labels
+namespace Elsa.EntityFrameworkCore.Sqlite.Migrations.Labels
{
public partial class Initial : Migration
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Labels/LabelsElsaDbContextModelSnapshot.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Labels/LabelsElsaDbContextModelSnapshot.cs
similarity index 94%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Labels/LabelsElsaDbContextModelSnapshot.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Labels/LabelsElsaDbContextModelSnapshot.cs
index 0c4ab6f09..6f83ccde4 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Labels/LabelsElsaDbContextModelSnapshot.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Labels/LabelsElsaDbContextModelSnapshot.cs
@@ -1,12 +1,12 @@
//
-using Elsa.Persistence.EntityFrameworkCore.Modules.Labels;
+using Elsa.EntityFrameworkCore.Modules.Labels;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Migrations.Labels
+namespace Elsa.EntityFrameworkCore.Sqlite.Migrations.Labels
{
[DbContext(typeof(LabelsElsaDbContext))]
partial class LabelsElsaDbContextModelSnapshot : ModelSnapshot
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Management/20221120175506_Initial.Designer.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Management/20221120175506_Initial.Designer.cs
similarity index 97%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Management/20221120175506_Initial.Designer.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Management/20221120175506_Initial.Designer.cs
index 431ca3ac9..4ef407a5e 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Management/20221120175506_Initial.Designer.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Management/20221120175506_Initial.Designer.cs
@@ -1,6 +1,6 @@
//
using System;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Management;
+using Elsa.EntityFrameworkCore.Modules.Management;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Migrations.Management
+namespace Elsa.EntityFrameworkCore.Sqlite.Migrations.Management
{
[DbContext(typeof(ManagementElsaDbContext))]
[Migration("20221120175506_Initial")]
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Management/20221120175506_Initial.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Management/20221120175506_Initial.cs
similarity index 98%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Management/20221120175506_Initial.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Management/20221120175506_Initial.cs
index 39124b935..13b985af3 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Management/20221120175506_Initial.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Management/20221120175506_Initial.cs
@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Migrations.Management
+namespace Elsa.EntityFrameworkCore.Sqlite.Migrations.Management
{
public partial class Initial : Migration
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Management/ManagementElsaDbContextModelSnapshot.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Management/ManagementElsaDbContextModelSnapshot.cs
similarity index 97%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Management/ManagementElsaDbContextModelSnapshot.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Management/ManagementElsaDbContextModelSnapshot.cs
index 80d75fd91..ceadf4e10 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Management/ManagementElsaDbContextModelSnapshot.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Management/ManagementElsaDbContextModelSnapshot.cs
@@ -1,13 +1,13 @@
//
using System;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Management;
+using Elsa.EntityFrameworkCore.Modules.Management;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Migrations.Management
+namespace Elsa.EntityFrameworkCore.Sqlite.Migrations.Management
{
[DbContext(typeof(ManagementElsaDbContext))]
partial class ManagementElsaDbContextModelSnapshot : ModelSnapshot
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Runtime/20221120175509_Initial.Designer.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Runtime/20221120175509_Initial.Designer.cs
similarity index 98%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Runtime/20221120175509_Initial.Designer.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Runtime/20221120175509_Initial.Designer.cs
index c6b08d8bc..68ef2cd36 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Runtime/20221120175509_Initial.Designer.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Runtime/20221120175509_Initial.Designer.cs
@@ -1,6 +1,6 @@
//
using System;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Runtime;
+using Elsa.EntityFrameworkCore.Modules.Runtime;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
@@ -8,7 +8,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Migrations.Runtime
+namespace Elsa.EntityFrameworkCore.Sqlite.Migrations.Runtime
{
[DbContext(typeof(RuntimeElsaDbContext))]
[Migration("20221120175509_Initial")]
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Runtime/20221120175509_Initial.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Runtime/20221120175509_Initial.cs
similarity index 99%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Runtime/20221120175509_Initial.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Runtime/20221120175509_Initial.cs
index 1035cbd54..2b8618670 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Runtime/20221120175509_Initial.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Runtime/20221120175509_Initial.cs
@@ -3,7 +3,7 @@ using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Migrations.Runtime
+namespace Elsa.EntityFrameworkCore.Sqlite.Migrations.Runtime
{
public partial class Initial : Migration
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs
similarity index 98%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs
index 3b44668e3..ff741f408 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Migrations/Runtime/RuntimeElsaDbContextModelSnapshot.cs
@@ -1,13 +1,13 @@
//
using System;
-using Elsa.Persistence.EntityFrameworkCore.Modules.Runtime;
+using Elsa.EntityFrameworkCore.Modules.Runtime;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Migrations.Runtime
+namespace Elsa.EntityFrameworkCore.Sqlite.Migrations.Runtime
{
[DbContext(typeof(RuntimeElsaDbContext))]
partial class RuntimeElsaDbContextModelSnapshot : ModelSnapshot
diff --git a/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/ActivityDefinitions/DesignTimeDbContextFactory.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/ActivityDefinitions/DesignTimeDbContextFactory.cs
new file mode 100644
index 000000000..d63bea46a
--- /dev/null
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/ActivityDefinitions/DesignTimeDbContextFactory.cs
@@ -0,0 +1,9 @@
+using Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
+using Elsa.EntityFrameworkCore.Sqlite.Abstractions;
+
+namespace Elsa.EntityFrameworkCore.Sqlite.Modules.ActivityDefinitions;
+
+// ReSharper disable once UnusedType.Global
+public class DesignTimeDbContextFactory : SqliteDesignTimeDbContextFactoryBase
+{
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Modules/ActivityDefinitions/Extensions.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/ActivityDefinitions/Extensions.cs
similarity index 61%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Modules/ActivityDefinitions/Extensions.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/ActivityDefinitions/Extensions.cs
index 5cc0475fc..6fafceeb5 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Modules/ActivityDefinitions/Extensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/ActivityDefinitions/Extensions.cs
@@ -1,7 +1,7 @@
-using Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
-using Elsa.Persistence.EntityFrameworkCore.Sqlite.Extensions;
+using Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
+using Elsa.EntityFrameworkCore.Sqlite.Extensions;
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Modules.ActivityDefinitions;
+namespace Elsa.EntityFrameworkCore.Sqlite.Modules.ActivityDefinitions;
public static class Extensions
{
diff --git a/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Labels/DesignTimeDbContextFactory.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Labels/DesignTimeDbContextFactory.cs
new file mode 100644
index 000000000..55b797fa9
--- /dev/null
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Labels/DesignTimeDbContextFactory.cs
@@ -0,0 +1,9 @@
+using Elsa.EntityFrameworkCore.Modules.Labels;
+using Elsa.EntityFrameworkCore.Sqlite.Abstractions;
+
+namespace Elsa.EntityFrameworkCore.Sqlite.Modules.Labels;
+
+// ReSharper disable once UnusedType.Global
+public class DesignTimeDbContextFactory : SqliteDesignTimeDbContextFactoryBase
+{
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Modules/Labels/Extensions.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Labels/Extensions.cs
similarity index 62%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Modules/Labels/Extensions.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Labels/Extensions.cs
index 83a90fe6e..e6cfec356 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Modules/Labels/Extensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Labels/Extensions.cs
@@ -1,7 +1,7 @@
-using Elsa.Persistence.EntityFrameworkCore.Modules.Labels;
-using Elsa.Persistence.EntityFrameworkCore.Sqlite.Extensions;
+using Elsa.EntityFrameworkCore.Modules.Labels;
+using Elsa.EntityFrameworkCore.Sqlite.Extensions;
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Modules.Labels;
+namespace Elsa.EntityFrameworkCore.Sqlite.Modules.Labels;
public static class Extensions
{
diff --git a/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Management/DesignTimeDbContextFactory.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Management/DesignTimeDbContextFactory.cs
new file mode 100644
index 000000000..3ddfd977c
--- /dev/null
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Management/DesignTimeDbContextFactory.cs
@@ -0,0 +1,9 @@
+using Elsa.EntityFrameworkCore.Modules.Management;
+using Elsa.EntityFrameworkCore.Sqlite.Abstractions;
+
+namespace Elsa.EntityFrameworkCore.Sqlite.Modules.Management;
+
+// ReSharper disable once UnusedType.Global
+public class DesignTimeDbContextFactory : SqliteDesignTimeDbContextFactoryBase
+{
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Modules/Management/Extensions.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Management/Extensions.cs
similarity index 62%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Modules/Management/Extensions.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Management/Extensions.cs
index 4d8b424c4..a0e912c7b 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Modules/Management/Extensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Management/Extensions.cs
@@ -1,7 +1,7 @@
-using Elsa.Persistence.EntityFrameworkCore.Modules.Management;
-using Elsa.Persistence.EntityFrameworkCore.Sqlite.Extensions;
+using Elsa.EntityFrameworkCore.Modules.Management;
+using Elsa.EntityFrameworkCore.Sqlite.Extensions;
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Modules.Management;
+namespace Elsa.EntityFrameworkCore.Sqlite.Modules.Management;
public static class Extensions
{
diff --git a/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Runtime/DesignTimeDbContextFactory.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Runtime/DesignTimeDbContextFactory.cs
new file mode 100644
index 000000000..6e0e01878
--- /dev/null
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Runtime/DesignTimeDbContextFactory.cs
@@ -0,0 +1,9 @@
+using Elsa.EntityFrameworkCore.Modules.Runtime;
+using Elsa.EntityFrameworkCore.Sqlite.Abstractions;
+
+namespace Elsa.EntityFrameworkCore.Sqlite.Modules.Runtime;
+
+// ReSharper disable once UnusedType.Global
+public class SqliteDesignTimeRuntimeDbContextFactory : SqliteDesignTimeDbContextFactoryBase
+{
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Modules/Runtime/Extensions.cs b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Runtime/Extensions.cs
similarity index 62%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Modules/Runtime/Extensions.cs
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Runtime/Extensions.cs
index 3f6371af7..528a7c89b 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/Modules/Runtime/Extensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore.Sqlite/Modules/Runtime/Extensions.cs
@@ -1,7 +1,7 @@
-using Elsa.Persistence.EntityFrameworkCore.Modules.Runtime;
-using Elsa.Persistence.EntityFrameworkCore.Sqlite.Extensions;
+using Elsa.EntityFrameworkCore.Modules.Runtime;
+using Elsa.EntityFrameworkCore.Sqlite.Extensions;
-namespace Elsa.Persistence.EntityFrameworkCore.Sqlite.Modules.Runtime;
+namespace Elsa.EntityFrameworkCore.Sqlite.Modules.Runtime;
public static class Extensions
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/generate-migrations.cmd b/src/modules/Elsa.EntityFrameworkCore.Sqlite/generate-migrations.cmd
similarity index 100%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/generate-migrations.cmd
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/generate-migrations.cmd
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/generate-migrations.sh b/src/modules/Elsa.EntityFrameworkCore.Sqlite/generate-migrations.sh
similarity index 100%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore.Sqlite/generate-migrations.sh
rename to src/modules/Elsa.EntityFrameworkCore.Sqlite/generate-migrations.sh
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Common/ElsaDbContextBase.cs b/src/modules/Elsa.EntityFrameworkCore/Common/ElsaDbContextBase.cs
similarity index 94%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Common/ElsaDbContextBase.cs
rename to src/modules/Elsa.EntityFrameworkCore/Common/ElsaDbContextBase.cs
index b05756292..92e0dad34 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore/Common/ElsaDbContextBase.cs
+++ b/src/modules/Elsa.EntityFrameworkCore/Common/ElsaDbContextBase.cs
@@ -1,8 +1,8 @@
-using Elsa.Persistence.EntityFrameworkCore.Extensions;
+using Elsa.EntityFrameworkCore.Extensions;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-namespace Elsa.Persistence.EntityFrameworkCore.Common;
+namespace Elsa.EntityFrameworkCore.Common;
///
/// An optional base class to implement with some opinions on certain converters to install for certain DB providers.
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Common/PersistenceFeatureBase.cs b/src/modules/Elsa.EntityFrameworkCore/Common/PersistenceFeatureBase.cs
similarity index 96%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Common/PersistenceFeatureBase.cs
rename to src/modules/Elsa.EntityFrameworkCore/Common/PersistenceFeatureBase.cs
index cffbfb8f3..24f888a17 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore/Common/PersistenceFeatureBase.cs
+++ b/src/modules/Elsa.EntityFrameworkCore/Common/PersistenceFeatureBase.cs
@@ -3,7 +3,7 @@ using Elsa.Features.Services;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
-namespace Elsa.Persistence.EntityFrameworkCore.Common;
+namespace Elsa.EntityFrameworkCore.Common;
public abstract class PersistenceFeatureBase : FeatureBase where TDbContext : DbContext
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Common/RunMigrationsHostedService.cs b/src/modules/Elsa.EntityFrameworkCore/Common/RunMigrationsHostedService.cs
similarity index 94%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Common/RunMigrationsHostedService.cs
rename to src/modules/Elsa.EntityFrameworkCore/Common/RunMigrationsHostedService.cs
index cfb2c5a44..3010ff72d 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore/Common/RunMigrationsHostedService.cs
+++ b/src/modules/Elsa.EntityFrameworkCore/Common/RunMigrationsHostedService.cs
@@ -1,7 +1,7 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Hosting;
-namespace Elsa.Persistence.EntityFrameworkCore.Common
+namespace Elsa.EntityFrameworkCore.Common
{
///
/// Executes EF Core migrations using the specified type.
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Common/Store.cs b/src/modules/Elsa.EntityFrameworkCore/Common/Store.cs
similarity index 94%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Common/Store.cs
rename to src/modules/Elsa.EntityFrameworkCore/Common/Store.cs
index 16ec3f3a2..100e737a7 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore/Common/Store.cs
+++ b/src/modules/Elsa.EntityFrameworkCore/Common/Store.cs
@@ -2,10 +2,10 @@ using System.Linq.Expressions;
using EFCore.BulkExtensions;
using Elsa.Common.Entities;
using Elsa.Common.Models;
-using Elsa.Persistence.EntityFrameworkCore.Extensions;
+using Elsa.EntityFrameworkCore.Extensions;
using Microsoft.EntityFrameworkCore;
-namespace Elsa.Persistence.EntityFrameworkCore.Common;
+namespace Elsa.EntityFrameworkCore.Common;
public class Store where TDbContext : DbContext where TEntity : class
{
@@ -23,7 +23,7 @@ public class Store where TDbContext : DbContext where TEnti
{
await using var dbContext = await CreateDbContextAsync(cancellationToken);
entity = onSaving?.Invoke(dbContext, entity) ?? entity;
- await dbContext.BulkInsertOrUpdateAsync(new[] { entity }, config => { config.EnableShadowProperties = true; }, cancellationToken: cancellationToken);
+ await dbContext.BulkUpsertAsync(new[] { entity }, cancellationToken);
}
public async Task SaveManyAsync(IEnumerable entities, CancellationToken cancellationToken = default) => await SaveManyAsync(entities, default, cancellationToken);
@@ -36,7 +36,7 @@ public class Store where TDbContext : DbContext where TEnti
if (onSaving != null)
entityList = entityList.Select(x => onSaving(dbContext, x)).ToList();
- await dbContext.BulkInsertOrUpdateAsync(entityList, config => { config.EnableShadowProperties = true; }, cancellationToken: cancellationToken);
+ await dbContext.BulkUpsertAsync(entityList, cancellationToken);
}
public async Task FindAsync(Expression> predicate, CancellationToken cancellationToken = default) => await FindAsync(predicate, default, cancellationToken);
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Elsa.Persistence.EntityFrameworkCore.csproj b/src/modules/Elsa.EntityFrameworkCore/Elsa.EntityFrameworkCore.csproj
similarity index 100%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Elsa.Persistence.EntityFrameworkCore.csproj
rename to src/modules/Elsa.EntityFrameworkCore/Elsa.EntityFrameworkCore.csproj
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Extensions/DatabaseFacadeExtensions.cs b/src/modules/Elsa.EntityFrameworkCore/Extensions/DatabaseFacadeExtensions.cs
similarity index 89%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Extensions/DatabaseFacadeExtensions.cs
rename to src/modules/Elsa.EntityFrameworkCore/Extensions/DatabaseFacadeExtensions.cs
index 8683b32ad..ed9e4fa26 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore/Extensions/DatabaseFacadeExtensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore/Extensions/DatabaseFacadeExtensions.cs
@@ -1,6 +1,6 @@
using Microsoft.EntityFrameworkCore.Infrastructure;
-namespace Elsa.Persistence.EntityFrameworkCore.Extensions;
+namespace Elsa.EntityFrameworkCore.Extensions;
internal static class DatabaseFacadeExtensions
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Extensions/DbSetExtensions.cs b/src/modules/Elsa.EntityFrameworkCore/Extensions/DbSetExtensions.cs
similarity index 51%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Extensions/DbSetExtensions.cs
rename to src/modules/Elsa.EntityFrameworkCore/Extensions/DbSetExtensions.cs
index 3eb7faee4..eabc68985 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore/Extensions/DbSetExtensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore/Extensions/DbSetExtensions.cs
@@ -1,10 +1,16 @@
using System.Linq.Expressions;
using Microsoft.EntityFrameworkCore;
-namespace Elsa.Persistence.EntityFrameworkCore.Extensions;
+namespace Elsa.EntityFrameworkCore.Extensions;
+///
+/// Provides extensions to .
+///
public static class DbSetExtensions
{
+ ///
+ /// Deletes matching results in bulk.
+ ///
public static async Task DeleteWhereAsync(this DbSet set, DbContext dbContext, Expression> predicate, CancellationToken cancellationToken = default) where T : class =>
- await set.Where(predicate).BatchDeleteWithWorkAroundAsync(dbContext, cancellationToken);
+ await set.Where(predicate).BulkDeleteAsync(dbContext, cancellationToken);
}
\ No newline at end of file
diff --git a/src/modules/Elsa.EntityFrameworkCore/Extensions/QueryableExtensions.cs b/src/modules/Elsa.EntityFrameworkCore/Extensions/QueryableExtensions.cs
new file mode 100644
index 000000000..7372ed14e
--- /dev/null
+++ b/src/modules/Elsa.EntityFrameworkCore/Extensions/QueryableExtensions.cs
@@ -0,0 +1,67 @@
+using System.Linq.Expressions;
+using System.Net;
+using System.Runtime.CompilerServices;
+using EFCore.BulkExtensions;
+using Elsa.Common.Models;
+using Microsoft.EntityFrameworkCore;
+
+namespace Elsa.EntityFrameworkCore.Extensions;
+
+///
+/// Provides extensions to .
+///
+public static class QueryableExtensions
+{
+ ///
+ /// Deletes the matching results in bulk.
+ ///
+ public static async Task BulkDeleteAsync(this IQueryable queryable, DbContext elsaContext, CancellationToken cancellationToken = default) where T : class
+ {
+#if NET7_0_OR_GREATER
+ return await queryable.ExecuteDeleteAsync(cancellationToken).ConfigureAwait(false);
+#else
+ if (!elsaContext.Database.IsPostgres() && !elsaContext.Database.IsMySql() && !elsaContext.Database.IsOracle())
+ return await queryable.BatchDeleteAsync(cancellationToken);
+
+ // Need this workaround https://github.com/borisdj/EFCore.BulkExtensions/issues/553 is solved.
+ // Oracle also https://github.com/borisdj/EFCore.BulkExtensions/issues/375
+ var records = await queryable.ToListAsync(cancellationToken);
+
+ foreach (var record in records)
+ elsaContext.Remove(record);
+
+ return records.Count;
+
+#endif
+ }
+
+ ///
+ /// Inserts or updates a list of entities in bulk.
+ ///
+ public static async Task BulkUpsertAsync(this TDbContext dbContext, IList entities, CancellationToken cancellationToken = default) where TDbContext : DbContext where TEntity : class =>
+ await dbContext.BulkInsertOrUpdateAsync(entities, config => { config.EnableShadowProperties = true; }, cancellationToken: cancellationToken);
+
+ ///
+ /// Returns a paged result from the specified query.
+ ///
+ public static async Task> PaginateAsync(this IQueryable queryable, Expression> projection, PageArgs? pageArgs = default)
+ {
+ var count = await queryable.CountAsync();
+ if (pageArgs?.Offset != null) queryable = queryable.Skip(pageArgs.Offset.Value);
+ if (pageArgs?.Limit != null) queryable = queryable.Take(pageArgs.Limit.Value);
+ var results = await queryable.Select(projection).ToListAsync();
+ return Page.Of(results, count);
+ }
+
+ ///
+ /// Returns a paged result from the specified query.
+ ///
+ public static async Task> PaginateAsync(this IQueryable queryable, PageArgs? pageArgs = default)
+ {
+ var count = await queryable.CountAsync();
+ if (pageArgs?.Offset != null) queryable = queryable.Skip(pageArgs.Offset.Value);
+ if (pageArgs?.Limit != null) queryable = queryable.Take(pageArgs.Limit.Value);
+ var results = await queryable.ToListAsync();
+ return Page.Of(results, count);
+ }
+}
\ No newline at end of file
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/FodyWeavers.xml b/src/modules/Elsa.EntityFrameworkCore/FodyWeavers.xml
similarity index 100%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/FodyWeavers.xml
rename to src/modules/Elsa.EntityFrameworkCore/FodyWeavers.xml
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/ActivityDefinitionStore.cs b/src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/ActivityDefinitionStore.cs
similarity index 97%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/ActivityDefinitionStore.cs
rename to src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/ActivityDefinitionStore.cs
index 57c5e468f..6510633d1 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/ActivityDefinitionStore.cs
+++ b/src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/ActivityDefinitionStore.cs
@@ -5,12 +5,12 @@ using Elsa.ActivityDefinitions.Models;
using Elsa.ActivityDefinitions.Services;
using Elsa.Common.Extensions;
using Elsa.Common.Models;
-using Elsa.Persistence.EntityFrameworkCore.Common;
-using Elsa.Persistence.EntityFrameworkCore.Extensions;
+using Elsa.EntityFrameworkCore.Common;
+using Elsa.EntityFrameworkCore.Extensions;
using Elsa.Workflows.Core.Models;
using Elsa.Workflows.Core.Serialization;
-namespace Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
+namespace Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
public class EFCoreActivityDefinitionStore : IActivityDefinitionStore
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/Configurations.cs b/src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/Configurations.cs
similarity index 94%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/Configurations.cs
rename to src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/Configurations.cs
index 11df2227a..3cec78c84 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/Configurations.cs
+++ b/src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/Configurations.cs
@@ -2,7 +2,7 @@ using Elsa.ActivityDefinitions.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
-namespace Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
+namespace Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
public class Configurations : IEntityTypeConfiguration
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/DbContext.cs b/src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/DbContext.cs
similarity index 79%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/DbContext.cs
rename to src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/DbContext.cs
index 99b9e0f99..d7a89a5fd 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/DbContext.cs
+++ b/src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/DbContext.cs
@@ -1,8 +1,8 @@
using Elsa.ActivityDefinitions.Entities;
-using Elsa.Persistence.EntityFrameworkCore.Common;
+using Elsa.EntityFrameworkCore.Common;
using Microsoft.EntityFrameworkCore;
-namespace Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
+namespace Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
public class ActivityDefinitionsElsaDbContext : ElsaDbContextBase
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/Extensions.cs b/src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/Extensions.cs
similarity index 81%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/Extensions.cs
rename to src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/Extensions.cs
index 970a1b083..939cf403e 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/Extensions.cs
+++ b/src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/Extensions.cs
@@ -1,6 +1,6 @@
using Elsa.ActivityDefinitions.Features;
-namespace Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
+namespace Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
public static class Extensions
{
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/Feature.cs b/src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/Feature.cs
similarity index 86%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/Feature.cs
rename to src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/Feature.cs
index db82c9937..d67363069 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/ActivityDefinitions/Feature.cs
+++ b/src/modules/Elsa.EntityFrameworkCore/Modules/ActivityDefinitions/Feature.cs
@@ -1,11 +1,11 @@
using Elsa.ActivityDefinitions.Entities;
using Elsa.ActivityDefinitions.Features;
+using Elsa.EntityFrameworkCore.Common;
using Elsa.Features.Attributes;
using Elsa.Features.Services;
-using Elsa.Persistence.EntityFrameworkCore.Common;
using Microsoft.Extensions.DependencyInjection;
-namespace Elsa.Persistence.EntityFrameworkCore.Modules.ActivityDefinitions;
+namespace Elsa.EntityFrameworkCore.Modules.ActivityDefinitions;
[DependsOn(typeof(ActivityDefinitionsFeature))]
public class EFCoreActivityDefinitionsPersistenceFeature : PersistenceFeatureBase
diff --git a/src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/Labels/Configurations.cs b/src/modules/Elsa.EntityFrameworkCore/Modules/Labels/Configurations.cs
similarity index 93%
rename from src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/Labels/Configurations.cs
rename to src/modules/Elsa.EntityFrameworkCore/Modules/Labels/Configurations.cs
index cd6cf4141..782ca7f15 100644
--- a/src/modules/Elsa.Persistence.EntityFrameworkCore/Modules/Labels/Configurations.cs
+++ b/src/modules/Elsa.EntityFrameworkCore/Modules/Labels/Configurations.cs
@@ -2,7 +2,7 @@ using Elsa.Labels.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
-namespace Elsa.Persistence.EntityFrameworkCore.Modules.Labels;
+namespace Elsa.EntityFrameworkCore.Modules.Labels;
public class Configurations : IEntityTypeConfiguration