diff --git a/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/FilterLists.Directory.Infrastructure.MigrationService.csproj b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/FilterLists.Directory.Infrastructure.MigrationService.csproj
new file mode 100644
index 000000000..157f21d17
--- /dev/null
+++ b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/FilterLists.Directory.Infrastructure.MigrationService.csproj
@@ -0,0 +1,12 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
diff --git a/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Program.cs b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Program.cs
new file mode 100644
index 000000000..d58815e48
--- /dev/null
+++ b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Program.cs
@@ -0,0 +1,7 @@
+using FilterLists.Directory.Infrastructure.MigrationService;
+
+var builder = Host.CreateApplicationBuilder(args);
+builder.Services.AddHostedService();
+
+var host = builder.Build();
+host.Run();
\ No newline at end of file
diff --git a/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Properties/launchSettings.json b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Properties/launchSettings.json
new file mode 100644
index 000000000..8a9b66618
--- /dev/null
+++ b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Properties/launchSettings.json
@@ -0,0 +1,12 @@
+{
+ "$schema": "http://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ "FilterLists.Directory.MigrationService": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "environmentVariables": {
+ "DOTNET_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
diff --git a/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Worker.cs b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Worker.cs
new file mode 100644
index 000000000..d1008a3dc
--- /dev/null
+++ b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Worker.cs
@@ -0,0 +1,21 @@
+namespace FilterLists.Directory.Infrastructure.MigrationService;
+
+public class Worker : BackgroundService
+{
+ private readonly ILogger _logger;
+
+ public Worker(ILogger logger)
+ {
+ _logger = logger;
+ }
+
+ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
+ {
+ while (!stoppingToken.IsCancellationRequested)
+ {
+ if (_logger.IsEnabled(LogLevel.Information))
+ _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
+ await Task.Delay(1000, stoppingToken);
+ }
+ }
+}
\ No newline at end of file
diff --git a/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/appsettings.Development.json b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/appsettings.Development.json
new file mode 100644
index 000000000..b2dcdb674
--- /dev/null
+++ b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/appsettings.Development.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.Hosting.Lifetime": "Information"
+ }
+ }
+}
diff --git a/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/appsettings.json b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/appsettings.json
new file mode 100644
index 000000000..b2dcdb674
--- /dev/null
+++ b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/appsettings.json
@@ -0,0 +1,8 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.Hosting.Lifetime": "Information"
+ }
+ }
+}
diff --git a/services/Directory/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj b/services/Directory/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj
new file mode 100644
index 000000000..3a6353295
--- /dev/null
+++ b/services/Directory/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
diff --git a/services/Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj b/services/Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj
new file mode 100644
index 000000000..bc05edd78
--- /dev/null
+++ b/services/Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj
@@ -0,0 +1,13 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/services/FilterLists.sln b/services/FilterLists.sln
index 61a2b5fcc..ec3b221df 100644
--- a/services/FilterLists.sln
+++ b/services/FilterLists.sln
@@ -1,4 +1,4 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
+Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.8.0.0
MinimumVisualStudioVersion = 17.8.0.0
@@ -14,6 +14,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FilterLists.Web", "FilterLi
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Directory", "Directory", "{C4F6197D-9546-480E-AE92-1FC264D8E88F}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FilterLists.Directory.Infrastructure.MigrationService", "Directory\FilterLists.Directory.Infrastructure.MigrationService\FilterLists.Directory.Infrastructure.MigrationService.csproj", "{5DD434A8-D394-4178-9DF3-669EC85EA229}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FilterLists.Directory.Infrastructure.Migrations", "Directory\FilterLists.Directory.Infrastructure.Migrations\FilterLists.Directory.Infrastructure.Migrations.csproj", "{37170729-4BC9-412F-9ADF-97592A677E90}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FilterLists.Directory.Infrastructure", "Directory\FilterLists.Directory.Infrastructure\FilterLists.Directory.Infrastructure.csproj", "{02B4FF36-8012-42CD-BE3E-92475C091A4C}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -40,6 +46,18 @@ Global
{E1311604-98F6-4AC7-8995-5E9F4CC34809}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E1311604-98F6-4AC7-8995-5E9F4CC34809}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E1311604-98F6-4AC7-8995-5E9F4CC34809}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5DD434A8-D394-4178-9DF3-669EC85EA229}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5DD434A8-D394-4178-9DF3-669EC85EA229}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5DD434A8-D394-4178-9DF3-669EC85EA229}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5DD434A8-D394-4178-9DF3-669EC85EA229}.Release|Any CPU.Build.0 = Release|Any CPU
+ {37170729-4BC9-412F-9ADF-97592A677E90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {37170729-4BC9-412F-9ADF-97592A677E90}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {37170729-4BC9-412F-9ADF-97592A677E90}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {37170729-4BC9-412F-9ADF-97592A677E90}.Release|Any CPU.Build.0 = Release|Any CPU
+ {02B4FF36-8012-42CD-BE3E-92475C091A4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {02B4FF36-8012-42CD-BE3E-92475C091A4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {02B4FF36-8012-42CD-BE3E-92475C091A4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {02B4FF36-8012-42CD-BE3E-92475C091A4C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -49,5 +67,8 @@ Global
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{85A14D07-5C37-458A-B74B-4EE67BBA7102} = {C4F6197D-9546-480E-AE92-1FC264D8E88F}
+ {5DD434A8-D394-4178-9DF3-669EC85EA229} = {C4F6197D-9546-480E-AE92-1FC264D8E88F}
+ {37170729-4BC9-412F-9ADF-97592A677E90} = {C4F6197D-9546-480E-AE92-1FC264D8E88F}
+ {02B4FF36-8012-42CD-BE3E-92475C091A4C} = {C4F6197D-9546-480E-AE92-1FC264D8E88F}
EndGlobalSection
EndGlobal