diff --git a/.github/workflows/build-artifacts.yml b/.github/workflows/build-artifacts.yml
index bbb716d..c4dbeec 100644
--- a/.github/workflows/build-artifacts.yml
+++ b/.github/workflows/build-artifacts.yml
@@ -22,6 +22,9 @@ jobs:
- name: Restore
run: dotnet restore
+ - name: Run tests
+ run: dotnet test --configuration Release
+
- name: Publish
run: dotnet publish -c Release -r win-x64 --artifacts-path ./output
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index bf792fa..21f2e3f 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -38,6 +38,9 @@ jobs:
with:
dotnet-version: 10.0.x
+ - name: Run tests
+ run: dotnet test --configuration Release
+
- name: Build and Publish Image
id: build-image
run: |
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 510ccdc..4a062b6 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -8,13 +8,13 @@
-
-
+
+
-
+
-
+
all
@@ -43,19 +43,19 @@
-
-
-
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
diff --git a/PublishDMS.ps1 b/PublishDMS.ps1
deleted file mode 100644
index 231d475..0000000
--- a/PublishDMS.ps1
+++ /dev/null
@@ -1,64 +0,0 @@
-# Overview : Publish DMS Projects in the list
-
-$msbuild = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin"
-
-# Project root : Make sure it doesn't have a \ at the end!
-$Root = "$PSScriptRoot\src"
-
-$Output = "$($env:USERPROFILE)\DMS\publish"
-
-cd $msbuild
-
-# Project names
-$Projects = @(
- 'API',
- 'Blocking',
- 'Cleanup',
- 'DbInteractions',
- 'Delius.Parser',
- 'Import',
- 'Kickoff',
- 'Logging',
- 'Meow',
- 'Matching.Engine',
- 'Offloc.Cleaner',
- 'Offloc.Parser',
- 'Orchestrator',
- 'Visualiser'
-)
-
-$DbProjects = @(
- 'ClusterDb',
- 'MatchingDb',
- 'OfflocRunningPictureDb',
- 'OfflocStagingDb',
- 'DeliusRunningPictureDb',
- 'DeliusStagingDb'
-)
-
-# Delete old publishes
-If (test-path $Output)
-{
- Remove-Item $Output\* -Force -Recurse
-}
-
-# Publish the projects
-foreach ($P in $Projects) {
- $Command = "dotnet publish $Root\$P\$P.csproj -c Release --runtime win-x64 --output $Output\app\$P"
- Invoke-Expression $Command
-}
-
-$dbOutputPath = "$Output\db\build"
-
-# Publish the db projects
-foreach ($P in $DbProjects) {
- .\msbuild.exe $Root\$P\$P.sqlproj /p:OutputPath="$dbOutputPath" /p:Configuration=Release /t:Rebuild
- Copy-Item "$dbOutputPath\$P*.sql" -Destination "$dbOutputPath\.."
-}
-
-If (test-path $dbOutputPath)
-{
- Remove-Item $dbOutputPath -Recurse -Force
-}
-
-cd $PSScriptRoot
\ No newline at end of file
diff --git a/base.development.env b/base.development.env
deleted file mode 100644
index 8d6d6ea..0000000
--- a/base.development.env
+++ /dev/null
@@ -1,3 +0,0 @@
-DOTNET_ENVIRONMENT=Development
-
-RedundantOfflocFields=11,20,32,33,34,35,36,37,38,41,43,44,45,46,53,54,55,56,57,58,59,60,61,62,74,75,76,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,142,144
\ No newline at end of file
diff --git a/development.local.env b/development.local.env
index c7ac801..a639dd8 100644
--- a/development.local.env
+++ b/development.local.env
@@ -1,5 +1,3 @@
-# extends: .env.development.base
-
DOTNET_ENVIRONMENT=Development
RedundantOfflocFields= Age, Occupation Description, Check Hold Governor, Check Hold General (to be left blank), Check Hold Discipline (to be left blank), Check Hold Allocation, Check Hold Security, Check Hold Medical, Check Hold Parole, ACCT Status (F2052), Status Rank (to be left blank), Pending Transfers (Full Establishment Name), Received From, Vulnerable Prisoner Alert, Height (metres), Complexion, Hair Colour, Left Eye, Right Eye, Build, Facial Shape, Facial Hair, Physical Mark Head, Physical Mark Body, Rule 45/YOI Rule 49, ACCT (Self Harm) Status, ACCT (Self Harm) Start Date, Remark Type Allocation, Remarks Allocation, Remark Type Security, Remarks Security, Remark Type Medical, Remarks Medical, Remark Type Parole, Remarks Parole, Remark Type Discipline, Remarks Discipline, Remark Type General, Remarks General, Remark Type Reception, Remarks Reception, Remark Type Labour, Remarks Labour, Date Of First Movement, Diary Details
diff --git a/dms.sln b/dms.sln
index caf5feb..f29b1fa 100644
--- a/dms.sln
+++ b/dms.sln
@@ -11,13 +11,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Offloc.Cleaner", "src\Offlo
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Offloc.Parser", "src\Offloc.Parser\Offloc.Parser.csproj", "{7691253C-BDDA-4BEE-ACEF-879B84F270F4}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Messaging", "src\Messaging\Messaging.csproj", "{AD41D2AA-7403-43A7-9D34-7700A4AF9F85}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Messaging", "src\Libraries\Messaging\Messaging.csproj", "{AD41D2AA-7403-43A7-9D34-7700A4AF9F85}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Import", "src\Import\Import.csproj", "{47A53A37-1E8C-479C-B3B5-276D2D05154E}"
EndProject
-Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "OfflocStagingDb", "src\OfflocStagingDb\OfflocStagingDb.sqlproj", "{0FA34F76-91ED-4037-883D-5916258BA65A}"
+Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "OfflocStagingDb", "src\Database\OfflocStagingDb\OfflocStagingDb.sqlproj", "{0FA34F76-91ED-4037-883D-5916258BA65A}"
EndProject
-Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "DeliusStagingDb", "src\DeliusStagingDb\DeliusStagingDb.sqlproj", "{5E86F978-BE47-458C-ADE7-D3B5B47C514A}"
+Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "DeliusStagingDb", "src\Database\DeliusStagingDb\DeliusStagingDb.sqlproj", "{5E86F978-BE47-458C-ADE7-D3B5B47C514A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cleanup", "src\Cleanup\Cleanup.csproj", "{4C0C21B2-853F-44FD-A867-66AC42F18665}"
EndProject
@@ -33,7 +33,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Merging", "Merging", "{8242
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DbInteractions", "src\DbInteractions\DbInteractions.csproj", "{9C5EAA04-DC75-41BA-B602-9784F6212D25}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EnvironmentSetup", "src\EnvironmentSetup\EnvironmentSetup.csproj", "{10EB5D1A-9986-4919-9A68-8AF4489DFCA6}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EnvironmentSetup", "src\Libraries\EnvironmentSetup\EnvironmentSetup.csproj", "{10EB5D1A-9986-4919-9A68-8AF4489DFCA6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D3DAF78A-03D7-42EC-8B73-4B4622E61EF8}"
ProjectSection(SolutionItems) = preProject
@@ -50,27 +50,25 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Logging", "src\Logging\Logging.csproj", "{F589600C-8148-4AE7-BC82-5E1D4BF9A2CF}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kickoff", "src\Kickoff\Kickoff.csproj", "{A8990E93-3651-45E4-AC66-B0062ED551B8}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blocking", "src\Blocking\Blocking.csproj", "{F08A806A-C1B9-40D7-9BE6-F47DBD66B259}"
EndProject
-Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "MatchingDb", "src\MatchingDb\MatchingDb.sqlproj", "{128D9167-3DC4-4D91-9837-CC4FDC664B13}"
+Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "MatchingDb", "src\Database\MatchingDb\MatchingDb.sqlproj", "{128D9167-3DC4-4D91-9837-CC4FDC664B13}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Matching", "Matching", "{B6043229-B4C5-4DA1-9204-75875A6CF80F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Matching.Engine", "src\Matching.Engine\Matching.Engine.csproj", "{D75540B8-FE85-47E0-83A4-D381C97559D0}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Matching.Core", "src\Matching.Core\Matching.Core.csproj", "{17500BC8-5DBF-415F-9454-C24EFA8EBC59}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Matching.Core", "src\Libraries\Matching.Core\Matching.Core.csproj", "{17500BC8-5DBF-415F-9454-C24EFA8EBC59}"
EndProject
-Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "ClusterDb", "src\ClusterDb\ClusterDb.sqlproj", "{17582F6C-FC3E-427B-BDD0-FD721C6C318B}"
+Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "ClusterDb", "src\Database\ClusterDb\ClusterDb.sqlproj", "{17582F6C-FC3E-427B-BDD0-FD721C6C318B}"
EndProject
-Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "DeliusRunningPictureDb", "src\DeliusRunningPictureDb\DeliusRunningPictureDb.sqlproj", "{F9C6ADBE-15FB-409E-BFED-A48EEBF393A7}"
+Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "DeliusRunningPictureDb", "src\Database\DeliusRunningPictureDb\DeliusRunningPictureDb.sqlproj", "{F9C6ADBE-15FB-409E-BFED-A48EEBF393A7}"
EndProject
-Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "OfflocRunningPictureDb", "src\OfflocRunningPictureDb\OfflocRunningPictureDb.sqlproj", "{A1A8A7ED-D3D2-4916-866A-9AEB510840AC}"
+Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "OfflocRunningPictureDb", "src\Database\OfflocRunningPictureDb\OfflocRunningPictureDb.sqlproj", "{A1A8A7ED-D3D2-4916-866A-9AEB510840AC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "API", "src\API\API.csproj", "{EBFD06D5-A7B3-48B7-8646-3155538BC867}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Api.Tests", "src\Api.Tests\Api.Tests.csproj", "{A4247B60-97A2-4D5A-AE97-53E3D497675A}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Api.Tests", "tests\Api.Tests\Api.Tests.csproj", "{A4247B60-97A2-4D5A-AE97-53E3D497675A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aspire.AppHost", "src\Aspire\Aspire.AppHost\Aspire.AppHost.csproj", "{F00FE6A0-A6B1-4877-B988-69690D11066B}"
EndProject
@@ -78,11 +76,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aspire.ServiceDefaults", "s
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Meow", "src\Meow\Meow.csproj", "{F300A5B2-A029-F04C-F6BB-AD41877264E3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure", "src\Infrastructure\Infrastructure.csproj", "{CBE1DCBE-419F-4F3B-ABDE-D1416A4A40F7}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Infrastructure", "src\Libraries\Infrastructure\Infrastructure.csproj", "{CBE1DCBE-419F-4F3B-ABDE-D1416A4A40F7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Visualiser", "src\Visualiser\Visualiser.csproj", "{C512532D-ADF0-D460-B843-C239A2A093EC}"
EndProject
-Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "AuditDb", "src\AuditDb\AuditDb.sqlproj", "{22A80A04-1AC5-46F1-BE57-DE9B1456B34E}"
+Project("{42EA0DBD-9CF1-443E-919E-BE9C484E4577}") = "AuditDb", "src\Database\AuditDb\AuditDb.sqlproj", "{22A80A04-1AC5-46F1-BE57-DE9B1456B34E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FakeDataSeeder", "src\FakeDataSeeder\FakeDataSeeder.csproj", "{F7F37423-FFBD-4093-AC69-E1D38B208998}"
EndProject
@@ -242,18 +240,6 @@ Global
{F589600C-8148-4AE7-BC82-5E1D4BF9A2CF}.Release|x64.Build.0 = Release|Any CPU
{F589600C-8148-4AE7-BC82-5E1D4BF9A2CF}.Release|x86.ActiveCfg = Release|Any CPU
{F589600C-8148-4AE7-BC82-5E1D4BF9A2CF}.Release|x86.Build.0 = Release|Any CPU
- {A8990E93-3651-45E4-AC66-B0062ED551B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A8990E93-3651-45E4-AC66-B0062ED551B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A8990E93-3651-45E4-AC66-B0062ED551B8}.Debug|x64.ActiveCfg = Debug|Any CPU
- {A8990E93-3651-45E4-AC66-B0062ED551B8}.Debug|x64.Build.0 = Debug|Any CPU
- {A8990E93-3651-45E4-AC66-B0062ED551B8}.Debug|x86.ActiveCfg = Debug|Any CPU
- {A8990E93-3651-45E4-AC66-B0062ED551B8}.Debug|x86.Build.0 = Debug|Any CPU
- {A8990E93-3651-45E4-AC66-B0062ED551B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A8990E93-3651-45E4-AC66-B0062ED551B8}.Release|Any CPU.Build.0 = Release|Any CPU
- {A8990E93-3651-45E4-AC66-B0062ED551B8}.Release|x64.ActiveCfg = Release|Any CPU
- {A8990E93-3651-45E4-AC66-B0062ED551B8}.Release|x64.Build.0 = Release|Any CPU
- {A8990E93-3651-45E4-AC66-B0062ED551B8}.Release|x86.ActiveCfg = Release|Any CPU
- {A8990E93-3651-45E4-AC66-B0062ED551B8}.Release|x86.Build.0 = Release|Any CPU
{F08A806A-C1B9-40D7-9BE6-F47DBD66B259}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F08A806A-C1B9-40D7-9BE6-F47DBD66B259}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F08A806A-C1B9-40D7-9BE6-F47DBD66B259}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -509,7 +495,6 @@ Global
{9C5EAA04-DC75-41BA-B602-9784F6212D25} = {C4AA533A-1A3C-4BBC-BA2B-A678FB784CA2}
{10EB5D1A-9986-4919-9A68-8AF4489DFCA6} = {605FBD70-9552-462C-BAC2-90D4655F1A27}
{F589600C-8148-4AE7-BC82-5E1D4BF9A2CF} = {D30CBF2D-71E6-43EE-85EC-BF193B03782D}
- {A8990E93-3651-45E4-AC66-B0062ED551B8} = {D30CBF2D-71E6-43EE-85EC-BF193B03782D}
{F08A806A-C1B9-40D7-9BE6-F47DBD66B259} = {8242D833-6E75-4EAA-9EB1-57B7EC128354}
{128D9167-3DC4-4D91-9837-CC4FDC664B13} = {8242D833-6E75-4EAA-9EB1-57B7EC128354}
{B6043229-B4C5-4DA1-9204-75875A6CF80F} = {D30CBF2D-71E6-43EE-85EC-BF193B03782D}
diff --git a/launchSettings.json b/launchSettings.json
deleted file mode 100644
index 20eb901..0000000
--- a/launchSettings.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "profiles": {
- "Docker Compose": {
- "commandName": "DockerCompose",
- "commandVersion": "1.0",
- "serviceActions": {
- "delius-download": "StartDebugging",
- "db-interactions": "StartDebugging",
- "delius-parser": "StartDebugging",
- "frontend": "StartDebugging",
- "import": "StartDebugging",
- "offloc-cleaner": "StartDebugging",
- "offloc-download": "StartDebugging",
- "offloc-parser": "StartDebugging",
- "rabbit": "StartWithoutDebugging",
- "staging-db": "StartWithoutDebugging"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/API/API.csproj b/src/API/API.csproj
index 48a1fa3..0f6eb6c 100644
--- a/src/API/API.csproj
+++ b/src/API/API.csproj
@@ -20,9 +20,9 @@
-
-
-
+
+
+
diff --git a/src/Aspire/Aspire.AppHost/Aspire.AppHost.csproj b/src/Aspire/Aspire.AppHost/Aspire.AppHost.csproj
index 5ed2065..6512654 100644
--- a/src/Aspire/Aspire.AppHost/Aspire.AppHost.csproj
+++ b/src/Aspire/Aspire.AppHost/Aspire.AppHost.csproj
@@ -21,15 +21,15 @@
-
-
-
+
+
+
-
+
-
-
-
+
+
+
@@ -38,7 +38,6 @@
-
diff --git a/src/Blocking/Blocking.csproj b/src/Blocking/Blocking.csproj
index f929f58..3ed3060 100644
--- a/src/Blocking/Blocking.csproj
+++ b/src/Blocking/Blocking.csproj
@@ -25,8 +25,8 @@
-
-
+
+
diff --git a/src/Blocking/BlockingBackgroundService.cs b/src/Blocking/BlockingBackgroundService.cs
index 40f7dec..923bcc8 100644
--- a/src/Blocking/BlockingBackgroundService.cs
+++ b/src/Blocking/BlockingBackgroundService.cs
@@ -27,9 +27,9 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await Task.Run(() =>
{
- importMessageService.ImportSubscribe(async (message) =>
+ importMessageService.ImportSubscribeAsync(async (message) =>
{
- statusMessagingService.StatusPublish(new StatusUpdateMessage("Blocking candidates..."));
+ await statusMessagingService.StatusPublishAsync(new StatusUpdateMessage("Blocking candidates..."));
await CallBlocking();
}, TImportQueue.ImportFinished);
}, stoppingToken);
@@ -38,6 +38,6 @@ await Task.Run(() =>
private async Task CallBlocking()
{
await matchingDbInsert.InsertCandidates();
- blockingMessageService.BlockingPublish(new BlockingFinishedMessage());
+ await blockingMessageService.BlockingPublishAsync(new BlockingFinishedMessage());
}
}
diff --git a/src/Blocking/Dockerfile b/src/Blocking/Dockerfile
deleted file mode 100644
index 0304d63..0000000
--- a/src/Blocking/Dockerfile
+++ /dev/null
@@ -1,24 +0,0 @@
-#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
-
-FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
-USER root
-WORKDIR /app
-
-FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
-ARG BUILD_CONFIGURATION=Release
-WORKDIR /src
-COPY ["src/Blocking/Blocking.csproj", "src/Blocking/"]
-RUN sudo apt-get update
-RUN sudo apt-get install python
-RUN dotnet restore "./src/Blocking/./Blocking.csproj"
-COPY . .
-WORKDIR "/src/src/Blocking"
-RUN dotnet build "./Blocking.csproj" -c $BUILD_CONFIGURATION -o /app/build
-
-FROM build AS publish
-RUN dotnet publish "./Blocking.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
-
-FROM base AS final
-WORKDIR /app
-COPY --from=publish /app/publish .
-ENTRYPOINT ["dotnet", "Blocking.dll"]
\ No newline at end of file
diff --git a/src/Blocking/Program.cs b/src/Blocking/Program.cs
index 831fd9a..277a9c7 100644
--- a/src/Blocking/Program.cs
+++ b/src/Blocking/Program.cs
@@ -39,11 +39,16 @@
builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
+ builder.Services.AddSingleton(sp =>
+ {
+ var rabbitContext = sp.GetRequiredService();
+ return RabbitService.CreateAsync(rabbitContext).GetAwaiter().GetResult();
+ });
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
builder.Services.AddHostedService();
diff --git a/src/Cleanup/Cleanup.csproj b/src/Cleanup/Cleanup.csproj
index 9758912..7f81d8a 100644
--- a/src/Cleanup/Cleanup.csproj
+++ b/src/Cleanup/Cleanup.csproj
@@ -20,8 +20,8 @@
-
-
+
+
diff --git a/src/Cleanup/CleanupBackgroundService.cs b/src/Cleanup/CleanupBackgroundService.cs
index d13b30b..49ef867 100644
--- a/src/Cleanup/CleanupBackgroundService.cs
+++ b/src/Cleanup/CleanupBackgroundService.cs
@@ -36,18 +36,18 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await Task.CompletedTask;
- mergingMessagingService.MergingSubscribe(async(message) =>
+ mergingMessagingService.MergingSubscribeAsync(async(message) =>
await CleanDelius(message), TMergingQueue.DeliusFilesCleanupQueue);
- mergingMessagingService.MergingSubscribe(async(message) =>
+ mergingMessagingService.MergingSubscribeAsync(async(message) =>
await CleanOffloc(message), TMergingQueue.OfflocFilesCleanupQueue);
- stagingMessagingService.StagingSubscribe(async (message) =>
+ stagingMessagingService.StagingSubscribeAsync(async (message) =>
{
await Task.CompletedTask;
deliusCleanup.ClearIllegalFiles();
}, TStagingQueue.DeliusFilesClear);
- stagingMessagingService.StagingSubscribe(async (message) =>
+ stagingMessagingService.StagingSubscribeAsync(async (message) =>
{
await Task.CompletedTask;
offlocCleanup.ClearIllegalFiles();
diff --git a/src/Cleanup/Dockerfile b/src/Cleanup/Dockerfile
deleted file mode 100644
index ba5a73d..0000000
--- a/src/Cleanup/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
-
-FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
-WORKDIR /app
-
-FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
-ARG BUILD_CONFIGURATION=Release
-WORKDIR /src
-COPY ["src/Cleanup/Cleanup.csproj", "src/Cleanup/"]
-RUN dotnet restore "./src/Cleanup/./Cleanup.csproj"
-COPY . .
-WORKDIR "/src/src/Cleanup"
-RUN dotnet build "./Cleanup.csproj" -c $BUILD_CONFIGURATION -o /app/build
-
-FROM build AS publish
-ARG BUILD_CONFIGURATION=Release
-RUN dotnet publish "./Cleanup.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
-
-FROM base AS final
-WORKDIR /app
-COPY --from=publish /app/publish .
-ENTRYPOINT ["dotnet", "Cleanup.dll"]
\ No newline at end of file
diff --git a/src/Cleanup/Program.cs b/src/Cleanup/Program.cs
index 9b938b5..c169cde 100644
--- a/src/Cleanup/Program.cs
+++ b/src/Cleanup/Program.cs
@@ -27,10 +27,15 @@
builder.Services.AddSingleton();
builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
+ builder.Services.AddSingleton(sp =>
+ {
+ var rabbitContext = sp.GetRequiredService();
+ return RabbitService.CreateAsync(rabbitContext).GetAwaiter().GetResult();
+ });
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
builder.Services.AddHostedService();
diff --git a/src/AuditDb/AuditDb.sqlproj b/src/Database/AuditDb/AuditDb.sqlproj
similarity index 100%
rename from src/AuditDb/AuditDb.sqlproj
rename to src/Database/AuditDb/AuditDb.sqlproj
diff --git a/src/AuditDb/Tables/AuditEntries.sql b/src/Database/AuditDb/Tables/AuditEntries.sql
similarity index 100%
rename from src/AuditDb/Tables/AuditEntries.sql
rename to src/Database/AuditDb/Tables/AuditEntries.sql
diff --git a/src/ClusterDb/ClusterDb.sqlproj b/src/Database/ClusterDb/ClusterDb.sqlproj
similarity index 100%
rename from src/ClusterDb/ClusterDb.sqlproj
rename to src/Database/ClusterDb/ClusterDb.sqlproj
diff --git a/src/ClusterDb/Clustering/Views/RecordMatchingView.sql b/src/Database/ClusterDb/Clustering/Views/RecordMatchingView.sql
similarity index 100%
rename from src/ClusterDb/Clustering/Views/RecordMatchingView.sql
rename to src/Database/ClusterDb/Clustering/Views/RecordMatchingView.sql
diff --git a/src/ClusterDb/Security/Clustering.sql b/src/Database/ClusterDb/Security/Clustering.sql
similarity index 100%
rename from src/ClusterDb/Security/Clustering.sql
rename to src/Database/ClusterDb/Security/Clustering.sql
diff --git a/src/ClusterDb/Security/input.sql b/src/Database/ClusterDb/Security/input.sql
similarity index 100%
rename from src/ClusterDb/Security/input.sql
rename to src/Database/ClusterDb/Security/input.sql
diff --git a/src/ClusterDb/Security/output.sql b/src/Database/ClusterDb/Security/output.sql
similarity index 100%
rename from src/ClusterDb/Security/output.sql
rename to src/Database/ClusterDb/Security/output.sql
diff --git a/src/ClusterDb/Security/processing.sql b/src/Database/ClusterDb/Security/processing.sql
similarity index 100%
rename from src/ClusterDb/Security/processing.sql
rename to src/Database/ClusterDb/Security/processing.sql
diff --git a/src/ClusterDb/Security/reference.sql b/src/Database/ClusterDb/Security/reference.sql
similarity index 100%
rename from src/ClusterDb/Security/reference.sql
rename to src/Database/ClusterDb/Security/reference.sql
diff --git a/src/ClusterDb/Security/search.sql b/src/Database/ClusterDb/Security/search.sql
similarity index 100%
rename from src/ClusterDb/Security/search.sql
rename to src/Database/ClusterDb/Security/search.sql
diff --git a/src/ClusterDb/input/Tables/EdgeProbabilities_Pass1.sql b/src/Database/ClusterDb/input/Tables/EdgeProbabilities_Pass1.sql
similarity index 100%
rename from src/ClusterDb/input/Tables/EdgeProbabilities_Pass1.sql
rename to src/Database/ClusterDb/input/Tables/EdgeProbabilities_Pass1.sql
diff --git a/src/ClusterDb/input/Tables/EdgeProbabilities_Pass2.sql b/src/Database/ClusterDb/input/Tables/EdgeProbabilities_Pass2.sql
similarity index 100%
rename from src/ClusterDb/input/Tables/EdgeProbabilities_Pass2.sql
rename to src/Database/ClusterDb/input/Tables/EdgeProbabilities_Pass2.sql
diff --git a/src/ClusterDb/input/Tables/Nodes.sql b/src/Database/ClusterDb/input/Tables/Nodes.sql
similarity index 100%
rename from src/ClusterDb/input/Tables/Nodes.sql
rename to src/Database/ClusterDb/input/Tables/Nodes.sql
diff --git a/src/ClusterDb/output/Tables/ClusterMembership.sql b/src/Database/ClusterDb/output/Tables/ClusterMembership.sql
similarity index 100%
rename from src/ClusterDb/output/Tables/ClusterMembership.sql
rename to src/Database/ClusterDb/output/Tables/ClusterMembership.sql
diff --git a/src/ClusterDb/output/Tables/Clusters.sql b/src/Database/ClusterDb/output/Tables/Clusters.sql
similarity index 100%
rename from src/ClusterDb/output/Tables/Clusters.sql
rename to src/Database/ClusterDb/output/Tables/Clusters.sql
diff --git a/src/ClusterDb/output/Tables/Clusters_EdgeProbabilities.sql b/src/Database/ClusterDb/output/Tables/Clusters_EdgeProbabilities.sql
similarity index 100%
rename from src/ClusterDb/output/Tables/Clusters_EdgeProbabilities.sql
rename to src/Database/ClusterDb/output/Tables/Clusters_EdgeProbabilities.sql
diff --git a/src/ClusterDb/processing/Stored Procedures/FlattenTables.sql b/src/Database/ClusterDb/processing/Stored Procedures/FlattenTables.sql
similarity index 100%
rename from src/ClusterDb/processing/Stored Procedures/FlattenTables.sql
rename to src/Database/ClusterDb/processing/Stored Procedures/FlattenTables.sql
diff --git a/src/ClusterDb/processing/Stored Procedures/Phase1.sql b/src/Database/ClusterDb/processing/Stored Procedures/Phase1.sql
similarity index 100%
rename from src/ClusterDb/processing/Stored Procedures/Phase1.sql
rename to src/Database/ClusterDb/processing/Stored Procedures/Phase1.sql
diff --git a/src/ClusterDb/processing/Stored Procedures/Phase2.sql b/src/Database/ClusterDb/processing/Stored Procedures/Phase2.sql
similarity index 100%
rename from src/ClusterDb/processing/Stored Procedures/Phase2.sql
rename to src/Database/ClusterDb/processing/Stored Procedures/Phase2.sql
diff --git a/src/ClusterDb/processing/Stored Procedures/PopulateReferenceTables.sql b/src/Database/ClusterDb/processing/Stored Procedures/PopulateReferenceTables.sql
similarity index 100%
rename from src/ClusterDb/processing/Stored Procedures/PopulateReferenceTables.sql
rename to src/Database/ClusterDb/processing/Stored Procedures/PopulateReferenceTables.sql
diff --git a/src/ClusterDb/processing/Stored Procedures/RunThrough.sql b/src/Database/ClusterDb/processing/Stored Procedures/RunThrough.sql
similarity index 100%
rename from src/ClusterDb/processing/Stored Procedures/RunThrough.sql
rename to src/Database/ClusterDb/processing/Stored Procedures/RunThrough.sql
diff --git a/src/ClusterDb/processing/Stored Procedures/Step1_GetPass1Edges.sql b/src/Database/ClusterDb/processing/Stored Procedures/Step1_GetPass1Edges.sql
similarity index 100%
rename from src/ClusterDb/processing/Stored Procedures/Step1_GetPass1Edges.sql
rename to src/Database/ClusterDb/processing/Stored Procedures/Step1_GetPass1Edges.sql
diff --git a/src/ClusterDb/processing/Stored Procedures/Step2_CompleteEdges.sql b/src/Database/ClusterDb/processing/Stored Procedures/Step2_CompleteEdges.sql
similarity index 100%
rename from src/ClusterDb/processing/Stored Procedures/Step2_CompleteEdges.sql
rename to src/Database/ClusterDb/processing/Stored Procedures/Step2_CompleteEdges.sql
diff --git a/src/ClusterDb/processing/Stored Procedures/Step3_GetPass2Edges.sql b/src/Database/ClusterDb/processing/Stored Procedures/Step3_GetPass2Edges.sql
similarity index 100%
rename from src/ClusterDb/processing/Stored Procedures/Step3_GetPass2Edges.sql
rename to src/Database/ClusterDb/processing/Stored Procedures/Step3_GetPass2Edges.sql
diff --git a/src/ClusterDb/processing/Stored Procedures/Step4_ResolveGraphs.sql b/src/Database/ClusterDb/processing/Stored Procedures/Step4_ResolveGraphs.sql
similarity index 100%
rename from src/ClusterDb/processing/Stored Procedures/Step4_ResolveGraphs.sql
rename to src/Database/ClusterDb/processing/Stored Procedures/Step4_ResolveGraphs.sql
diff --git a/src/ClusterDb/processing/Stored Procedures/Step5_MaintainNodeTable.sql b/src/Database/ClusterDb/processing/Stored Procedures/Step5_MaintainNodeTable.sql
similarity index 100%
rename from src/ClusterDb/processing/Stored Procedures/Step5_MaintainNodeTable.sql
rename to src/Database/ClusterDb/processing/Stored Procedures/Step5_MaintainNodeTable.sql
diff --git a/src/ClusterDb/processing/Stored Procedures/Step6_UpdateClusterTable.sql b/src/Database/ClusterDb/processing/Stored Procedures/Step6_UpdateClusterTable.sql
similarity index 100%
rename from src/ClusterDb/processing/Stored Procedures/Step6_UpdateClusterTable.sql
rename to src/Database/ClusterDb/processing/Stored Procedures/Step6_UpdateClusterTable.sql
diff --git a/src/ClusterDb/processing/Stored Procedures/Step7_MaintainClusterSearchAttributes.sql b/src/Database/ClusterDb/processing/Stored Procedures/Step7_MaintainClusterSearchAttributes.sql
similarity index 100%
rename from src/ClusterDb/processing/Stored Procedures/Step7_MaintainClusterSearchAttributes.sql
rename to src/Database/ClusterDb/processing/Stored Procedures/Step7_MaintainClusterSearchAttributes.sql
diff --git a/src/ClusterDb/processing/Tables/ClusterAssignment.sql b/src/Database/ClusterDb/processing/Tables/ClusterAssignment.sql
similarity index 100%
rename from src/ClusterDb/processing/Tables/ClusterAssignment.sql
rename to src/Database/ClusterDb/processing/Tables/ClusterAssignment.sql
diff --git a/src/ClusterDb/processing/Tables/ClusterAssignment2.sql b/src/Database/ClusterDb/processing/Tables/ClusterAssignment2.sql
similarity index 100%
rename from src/ClusterDb/processing/Tables/ClusterAssignment2.sql
rename to src/Database/ClusterDb/processing/Tables/ClusterAssignment2.sql
diff --git a/src/ClusterDb/processing/Tables/ClusterMeta.sql b/src/Database/ClusterDb/processing/Tables/ClusterMeta.sql
similarity index 100%
rename from src/ClusterDb/processing/Tables/ClusterMeta.sql
rename to src/Database/ClusterDb/processing/Tables/ClusterMeta.sql
diff --git a/src/ClusterDb/processing/Tables/LinkNodes.sql b/src/Database/ClusterDb/processing/Tables/LinkNodes.sql
similarity index 100%
rename from src/ClusterDb/processing/Tables/LinkNodes.sql
rename to src/Database/ClusterDb/processing/Tables/LinkNodes.sql
diff --git a/src/ClusterDb/processing/Tables/OutstandingEdges.sql b/src/Database/ClusterDb/processing/Tables/OutstandingEdges.sql
similarity index 100%
rename from src/ClusterDb/processing/Tables/OutstandingEdges.sql
rename to src/Database/ClusterDb/processing/Tables/OutstandingEdges.sql
diff --git a/src/ClusterDb/processing/Tables/SubGraphs.sql b/src/Database/ClusterDb/processing/Tables/SubGraphs.sql
similarity index 100%
rename from src/ClusterDb/processing/Tables/SubGraphs.sql
rename to src/Database/ClusterDb/processing/Tables/SubGraphs.sql
diff --git a/src/ClusterDb/reference/Tables/Edges.sql b/src/Database/ClusterDb/reference/Tables/Edges.sql
similarity index 100%
rename from src/ClusterDb/reference/Tables/Edges.sql
rename to src/Database/ClusterDb/reference/Tables/Edges.sql
diff --git a/src/ClusterDb/reference/Tables/Nodes.sql b/src/Database/ClusterDb/reference/Tables/Nodes.sql
similarity index 100%
rename from src/ClusterDb/reference/Tables/Nodes.sql
rename to src/Database/ClusterDb/reference/Tables/Nodes.sql
diff --git a/src/ClusterDb/reference/Tables/StickyLocations.sql b/src/Database/ClusterDb/reference/Tables/StickyLocations.sql
similarity index 100%
rename from src/ClusterDb/reference/Tables/StickyLocations.sql
rename to src/Database/ClusterDb/reference/Tables/StickyLocations.sql
diff --git a/src/ClusterDb/reference/Tables/SubGraphSets.sql b/src/Database/ClusterDb/reference/Tables/SubGraphSets.sql
similarity index 100%
rename from src/ClusterDb/reference/Tables/SubGraphSets.sql
rename to src/Database/ClusterDb/reference/Tables/SubGraphSets.sql
diff --git a/src/ClusterDb/reference/Tables/UPCI2.sql b/src/Database/ClusterDb/reference/Tables/UPCI2.sql
similarity index 100%
rename from src/ClusterDb/reference/Tables/UPCI2.sql
rename to src/Database/ClusterDb/reference/Tables/UPCI2.sql
diff --git a/src/ClusterDb/scripts/populate-reference-tables.sql b/src/Database/ClusterDb/scripts/populate-reference-tables.sql
similarity index 100%
rename from src/ClusterDb/scripts/populate-reference-tables.sql
rename to src/Database/ClusterDb/scripts/populate-reference-tables.sql
diff --git a/src/ClusterDb/search/Tables/ClusterAttributes.sql b/src/Database/ClusterDb/search/Tables/ClusterAttributes.sql
similarity index 100%
rename from src/ClusterDb/search/Tables/ClusterAttributes.sql
rename to src/Database/ClusterDb/search/Tables/ClusterAttributes.sql
diff --git a/src/ClusterDb/search/Tables/Precedence.sql b/src/Database/ClusterDb/search/Tables/Precedence.sql
similarity index 100%
rename from src/ClusterDb/search/Tables/Precedence.sql
rename to src/Database/ClusterDb/search/Tables/Precedence.sql
diff --git a/src/DeliusRunningPictureDb/DeliusRunningPictureDb.sqlproj b/src/Database/DeliusRunningPictureDb/DeliusRunningPictureDb.sqlproj
similarity index 100%
rename from src/DeliusRunningPictureDb/DeliusRunningPictureDb.sqlproj
rename to src/Database/DeliusRunningPictureDb/DeliusRunningPictureDb.sqlproj
diff --git a/src/DeliusRunningPictureDb/Functions/StandardiseCRO.sql b/src/Database/DeliusRunningPictureDb/Functions/StandardiseCRO.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Functions/StandardiseCRO.sql
rename to src/Database/DeliusRunningPictureDb/Functions/StandardiseCRO.sql
diff --git a/src/DeliusRunningPictureDb/Functions/StandardisePNC.sql b/src/Database/DeliusRunningPictureDb/Functions/StandardisePNC.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Functions/StandardisePNC.sql
rename to src/Database/DeliusRunningPictureDb/Functions/StandardisePNC.sql
diff --git a/src/DeliusRunningPictureDb/Functions/StandardisePrisonNumber.sql b/src/Database/DeliusRunningPictureDb/Functions/StandardisePrisonNumber.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Functions/StandardisePrisonNumber.sql
rename to src/Database/DeliusRunningPictureDb/Functions/StandardisePrisonNumber.sql
diff --git a/src/DeliusRunningPictureDb/Indexes/IX_Offenders.sql b/src/Database/DeliusRunningPictureDb/Indexes/IX_Offenders.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Indexes/IX_Offenders.sql
rename to src/Database/DeliusRunningPictureDb/Indexes/IX_Offenders.sql
diff --git a/src/DeliusRunningPictureDb/Schema/DeliusRunningPicture.sql b/src/Database/DeliusRunningPictureDb/Schema/DeliusRunningPicture.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Schema/DeliusRunningPicture.sql
rename to src/Database/DeliusRunningPictureDb/Schema/DeliusRunningPicture.sql
diff --git a/src/DeliusRunningPictureDb/Schema/DeliusTemporal.sql b/src/Database/DeliusRunningPictureDb/Schema/DeliusTemporal.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Schema/DeliusTemporal.sql
rename to src/Database/DeliusRunningPictureDb/Schema/DeliusTemporal.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeAdditionalIdentifier.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeAdditionalIdentifier.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeAdditionalIdentifier.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeAdditionalIdentifier.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeAliasDetails.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeAliasDetails.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeAliasDetails.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeAliasDetails.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeAll.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeAll.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeAll.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeAll.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeDisability.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeDisability.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeDisability.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeDisability.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeDisposal.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeDisposal.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeDisposal.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeDisposal.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeEventDetails.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeEventDetails.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeEventDetails.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeEventDetails.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeMainOffence.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeMainOffence.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeMainOffence.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeMainOffence.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeOAS.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOAS.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeOAS.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOAS.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeOffenderAddress.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenderAddress.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeOffenderAddress.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenderAddress.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeOffenderManager.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenderManager.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeOffenderManager.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenderManager.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeOffenderManagerBuildings.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenderManagerBuildings.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeOffenderManagerBuildings.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenderManagerBuildings.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeOffenderManagerTeam.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenderManagerTeam.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeOffenderManagerTeam.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenderManagerTeam.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeOffenderToOffenderManagerMappings.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenderToOffenderManagerMappings.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeOffenderToOffenderManagerMappings.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenderToOffenderManagerMappings.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeOffenderTransfer.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenderTransfer.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeOffenderTransfer.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenderTransfer.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeOffenders.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenders.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeOffenders.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeOffenders.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergePersonalCircumstances.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergePersonalCircumstances.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergePersonalCircumstances.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergePersonalCircumstances.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeProvision.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeProvision.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeProvision.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeProvision.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeRegistrationDetails.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeRegistrationDetails.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeRegistrationDetails.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeRegistrationDetails.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeRequirement.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeRequirement.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeRequirement.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeRequirement.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/MergeStandardisationReference.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/MergeStandardisationReference.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/MergeStandardisationReference.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/MergeStandardisationReference.sql
diff --git a/src/DeliusRunningPictureDb/Stored Procedures/PreMergeScript.sql b/src/Database/DeliusRunningPictureDb/Stored Procedures/PreMergeScript.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Stored Procedures/PreMergeScript.sql
rename to src/Database/DeliusRunningPictureDb/Stored Procedures/PreMergeScript.sql
diff --git a/src/DeliusRunningPictureDb/Tables/AdditionalIdentifier.sql b/src/Database/DeliusRunningPictureDb/Tables/AdditionalIdentifier.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/AdditionalIdentifier.sql
rename to src/Database/DeliusRunningPictureDb/Tables/AdditionalIdentifier.sql
diff --git a/src/DeliusRunningPictureDb/Tables/AliasDetails.sql b/src/Database/DeliusRunningPictureDb/Tables/AliasDetails.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/AliasDetails.sql
rename to src/Database/DeliusRunningPictureDb/Tables/AliasDetails.sql
diff --git a/src/DeliusRunningPictureDb/Tables/Disability.sql b/src/Database/DeliusRunningPictureDb/Tables/Disability.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/Disability.sql
rename to src/Database/DeliusRunningPictureDb/Tables/Disability.sql
diff --git a/src/DeliusRunningPictureDb/Tables/Disposal.sql b/src/Database/DeliusRunningPictureDb/Tables/Disposal.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/Disposal.sql
rename to src/Database/DeliusRunningPictureDb/Tables/Disposal.sql
diff --git a/src/DeliusRunningPictureDb/Tables/EventDetails.sql b/src/Database/DeliusRunningPictureDb/Tables/EventDetails.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/EventDetails.sql
rename to src/Database/DeliusRunningPictureDb/Tables/EventDetails.sql
diff --git a/src/DeliusRunningPictureDb/Tables/MainOffence.sql b/src/Database/DeliusRunningPictureDb/Tables/MainOffence.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/MainOffence.sql
rename to src/Database/DeliusRunningPictureDb/Tables/MainOffence.sql
diff --git a/src/DeliusRunningPictureDb/Tables/OAS.sql b/src/Database/DeliusRunningPictureDb/Tables/OAS.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/OAS.sql
rename to src/Database/DeliusRunningPictureDb/Tables/OAS.sql
diff --git a/src/DeliusRunningPictureDb/Tables/OffenderAddress.sql b/src/Database/DeliusRunningPictureDb/Tables/OffenderAddress.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/OffenderAddress.sql
rename to src/Database/DeliusRunningPictureDb/Tables/OffenderAddress.sql
diff --git a/src/DeliusRunningPictureDb/Tables/OffenderManager.sql b/src/Database/DeliusRunningPictureDb/Tables/OffenderManager.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/OffenderManager.sql
rename to src/Database/DeliusRunningPictureDb/Tables/OffenderManager.sql
diff --git a/src/DeliusRunningPictureDb/Tables/OffenderManagerBuildings.sql b/src/Database/DeliusRunningPictureDb/Tables/OffenderManagerBuildings.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/OffenderManagerBuildings.sql
rename to src/Database/DeliusRunningPictureDb/Tables/OffenderManagerBuildings.sql
diff --git a/src/DeliusRunningPictureDb/Tables/OffenderManagerTeam.sql b/src/Database/DeliusRunningPictureDb/Tables/OffenderManagerTeam.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/OffenderManagerTeam.sql
rename to src/Database/DeliusRunningPictureDb/Tables/OffenderManagerTeam.sql
diff --git a/src/DeliusRunningPictureDb/Tables/OffenderToOffenderManagerMappings.sql b/src/Database/DeliusRunningPictureDb/Tables/OffenderToOffenderManagerMappings.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/OffenderToOffenderManagerMappings.sql
rename to src/Database/DeliusRunningPictureDb/Tables/OffenderToOffenderManagerMappings.sql
diff --git a/src/DeliusRunningPictureDb/Tables/OffenderTransfer.sql b/src/Database/DeliusRunningPictureDb/Tables/OffenderTransfer.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/OffenderTransfer.sql
rename to src/Database/DeliusRunningPictureDb/Tables/OffenderTransfer.sql
diff --git a/src/DeliusRunningPictureDb/Tables/Offenders.sql b/src/Database/DeliusRunningPictureDb/Tables/Offenders.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/Offenders.sql
rename to src/Database/DeliusRunningPictureDb/Tables/Offenders.sql
diff --git a/src/DeliusRunningPictureDb/Tables/OrderManager.sql b/src/Database/DeliusRunningPictureDb/Tables/OrderManager.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/OrderManager.sql
rename to src/Database/DeliusRunningPictureDb/Tables/OrderManager.sql
diff --git a/src/DeliusRunningPictureDb/Tables/PersonalCircumstances.sql b/src/Database/DeliusRunningPictureDb/Tables/PersonalCircumstances.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/PersonalCircumstances.sql
rename to src/Database/DeliusRunningPictureDb/Tables/PersonalCircumstances.sql
diff --git a/src/DeliusRunningPictureDb/Tables/ProcessedFiles.sql b/src/Database/DeliusRunningPictureDb/Tables/ProcessedFiles.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/ProcessedFiles.sql
rename to src/Database/DeliusRunningPictureDb/Tables/ProcessedFiles.sql
diff --git a/src/DeliusRunningPictureDb/Tables/Provision.sql b/src/Database/DeliusRunningPictureDb/Tables/Provision.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/Provision.sql
rename to src/Database/DeliusRunningPictureDb/Tables/Provision.sql
diff --git a/src/DeliusRunningPictureDb/Tables/RegistrationDetails.sql b/src/Database/DeliusRunningPictureDb/Tables/RegistrationDetails.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/RegistrationDetails.sql
rename to src/Database/DeliusRunningPictureDb/Tables/RegistrationDetails.sql
diff --git a/src/DeliusRunningPictureDb/Tables/Release.sql b/src/Database/DeliusRunningPictureDb/Tables/Release.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/Release.sql
rename to src/Database/DeliusRunningPictureDb/Tables/Release.sql
diff --git a/src/DeliusRunningPictureDb/Tables/Requirement.sql b/src/Database/DeliusRunningPictureDb/Tables/Requirement.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/Requirement.sql
rename to src/Database/DeliusRunningPictureDb/Tables/Requirement.sql
diff --git a/src/DeliusRunningPictureDb/Tables/StandardisationReference.sql b/src/Database/DeliusRunningPictureDb/Tables/StandardisationReference.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Tables/StandardisationReference.sql
rename to src/Database/DeliusRunningPictureDb/Tables/StandardisationReference.sql
diff --git a/src/DeliusRunningPictureDb/Views/CROView.sql b/src/Database/DeliusRunningPictureDb/Views/CROView.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Views/CROView.sql
rename to src/Database/DeliusRunningPictureDb/Views/CROView.sql
diff --git a/src/DeliusRunningPictureDb/Views/OffendersCleanView.sql b/src/Database/DeliusRunningPictureDb/Views/OffendersCleanView.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Views/OffendersCleanView.sql
rename to src/Database/DeliusRunningPictureDb/Views/OffendersCleanView.sql
diff --git a/src/DeliusRunningPictureDb/Views/PNCView.sql b/src/Database/DeliusRunningPictureDb/Views/PNCView.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Views/PNCView.sql
rename to src/Database/DeliusRunningPictureDb/Views/PNCView.sql
diff --git a/src/DeliusRunningPictureDb/Views/PrisonNumberView.sql b/src/Database/DeliusRunningPictureDb/Views/PrisonNumberView.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Views/PrisonNumberView.sql
rename to src/Database/DeliusRunningPictureDb/Views/PrisonNumberView.sql
diff --git a/src/DeliusRunningPictureDb/Views/RecordMatchingView.sql b/src/Database/DeliusRunningPictureDb/Views/RecordMatchingView.sql
similarity index 100%
rename from src/DeliusRunningPictureDb/Views/RecordMatchingView.sql
rename to src/Database/DeliusRunningPictureDb/Views/RecordMatchingView.sql
diff --git a/src/DeliusStagingDb/DeliusStagingDb.sqlproj b/src/Database/DeliusStagingDb/DeliusStagingDb.sqlproj
similarity index 100%
rename from src/DeliusStagingDb/DeliusStagingDb.sqlproj
rename to src/Database/DeliusStagingDb/DeliusStagingDb.sqlproj
diff --git a/src/DeliusStagingDb/Functions/StandardiseCRN.sql b/src/Database/DeliusStagingDb/Functions/StandardiseCRN.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardiseCRN.sql
rename to src/Database/DeliusStagingDb/Functions/StandardiseCRN.sql
diff --git a/src/DeliusStagingDb/Functions/StandardiseCRO.sql b/src/Database/DeliusStagingDb/Functions/StandardiseCRO.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardiseCRO.sql
rename to src/Database/DeliusStagingDb/Functions/StandardiseCRO.sql
diff --git a/src/DeliusStagingDb/Functions/StandardiseEthnicity.sql b/src/Database/DeliusStagingDb/Functions/StandardiseEthnicity.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardiseEthnicity.sql
rename to src/Database/DeliusStagingDb/Functions/StandardiseEthnicity.sql
diff --git a/src/DeliusStagingDb/Functions/StandardiseGender.sql b/src/Database/DeliusStagingDb/Functions/StandardiseGender.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardiseGender.sql
rename to src/Database/DeliusStagingDb/Functions/StandardiseGender.sql
diff --git a/src/DeliusStagingDb/Functions/StandardiseMilitaryServiceNumber.sql b/src/Database/DeliusStagingDb/Functions/StandardiseMilitaryServiceNumber.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardiseMilitaryServiceNumber.sql
rename to src/Database/DeliusStagingDb/Functions/StandardiseMilitaryServiceNumber.sql
diff --git a/src/DeliusStagingDb/Functions/StandardiseNINO.sql b/src/Database/DeliusStagingDb/Functions/StandardiseNINO.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardiseNINO.sql
rename to src/Database/DeliusStagingDb/Functions/StandardiseNINO.sql
diff --git a/src/DeliusStagingDb/Functions/StandardiseName.sql b/src/Database/DeliusStagingDb/Functions/StandardiseName.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardiseName.sql
rename to src/Database/DeliusStagingDb/Functions/StandardiseName.sql
diff --git a/src/DeliusStagingDb/Functions/StandardiseNationality.sql b/src/Database/DeliusStagingDb/Functions/StandardiseNationality.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardiseNationality.sql
rename to src/Database/DeliusStagingDb/Functions/StandardiseNationality.sql
diff --git a/src/DeliusStagingDb/Functions/StandardiseNomisNumber.sql b/src/Database/DeliusStagingDb/Functions/StandardiseNomisNumber.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardiseNomisNumber.sql
rename to src/Database/DeliusStagingDb/Functions/StandardiseNomisNumber.sql
diff --git a/src/DeliusStagingDb/Functions/StandardisePNC.sql b/src/Database/DeliusStagingDb/Functions/StandardisePNC.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardisePNC.sql
rename to src/Database/DeliusStagingDb/Functions/StandardisePNC.sql
diff --git a/src/DeliusStagingDb/Functions/StandardisePhoneNumber.sql b/src/Database/DeliusStagingDb/Functions/StandardisePhoneNumber.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardisePhoneNumber.sql
rename to src/Database/DeliusStagingDb/Functions/StandardisePhoneNumber.sql
diff --git a/src/DeliusStagingDb/Functions/StandardisePostCode.sql b/src/Database/DeliusStagingDb/Functions/StandardisePostCode.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardisePostCode.sql
rename to src/Database/DeliusStagingDb/Functions/StandardisePostCode.sql
diff --git a/src/DeliusStagingDb/Functions/StandardisePrisonNumber.sql b/src/Database/DeliusStagingDb/Functions/StandardisePrisonNumber.sql
similarity index 100%
rename from src/DeliusStagingDb/Functions/StandardisePrisonNumber.sql
rename to src/Database/DeliusStagingDb/Functions/StandardisePrisonNumber.sql
diff --git a/src/DeliusStagingDb/Schemas/DeliusStaging.sql b/src/Database/DeliusStagingDb/Schemas/DeliusStaging.sql
similarity index 100%
rename from src/DeliusStagingDb/Schemas/DeliusStaging.sql
rename to src/Database/DeliusStagingDb/Schemas/DeliusStaging.sql
diff --git a/src/DeliusStagingDb/Scripts/Cleanup.sql b/src/Database/DeliusStagingDb/Scripts/Cleanup.sql
similarity index 100%
rename from src/DeliusStagingDb/Scripts/Cleanup.sql
rename to src/Database/DeliusStagingDb/Scripts/Cleanup.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/AddReferenceData.sql b/src/Database/DeliusStagingDb/Stored Procedures/AddReferenceData.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/AddReferenceData.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/AddReferenceData.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/ClearDeliusStaging.sql b/src/Database/DeliusStagingDb/Stored Procedures/ClearDeliusStaging.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/ClearDeliusStaging.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/ClearDeliusStaging.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/Import.sql b/src/Database/DeliusStagingDb/Stored Procedures/Import.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/Import.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/Import.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/InitializeStandardisationLookups.sql b/src/Database/DeliusStagingDb/Stored Procedures/InitializeStandardisationLookups.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/InitializeStandardisationLookups.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/InitializeStandardisationLookups.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StageDelius.sql b/src/Database/DeliusStagingDb/Stored Procedures/StageDelius.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StageDelius.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StageDelius.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardiseCRN.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardiseCRN.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardiseCRN.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardiseCRN.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardiseCRO.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardiseCRO.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardiseCRO.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardiseCRO.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardiseData.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardiseData.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardiseData.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardiseData.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardiseEthnicity.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardiseEthnicity.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardiseEthnicity.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardiseEthnicity.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardiseGender.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardiseGender.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardiseGender.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardiseGender.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardiseMilitaryServiceNumber.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardiseMilitaryServiceNumber.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardiseMilitaryServiceNumber.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardiseMilitaryServiceNumber.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardiseNINO.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardiseNINO.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardiseNINO.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardiseNINO.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardiseNationality.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardiseNationality.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardiseNationality.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardiseNationality.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardiseNomisNumber.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardiseNomisNumber.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardiseNomisNumber.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardiseNomisNumber.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardisePNC.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardisePNC.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardisePNC.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardisePNC.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardisePhoneNumber.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardisePhoneNumber.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardisePhoneNumber.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardisePhoneNumber.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardisePostCode.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardisePostCode.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardisePostCode.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardisePostCode.sql
diff --git a/src/DeliusStagingDb/Stored Procedures/StandardisePrisonNumber.sql b/src/Database/DeliusStagingDb/Stored Procedures/StandardisePrisonNumber.sql
similarity index 100%
rename from src/DeliusStagingDb/Stored Procedures/StandardisePrisonNumber.sql
rename to src/Database/DeliusStagingDb/Stored Procedures/StandardisePrisonNumber.sql
diff --git a/src/DeliusStagingDb/Tables/AdditionalIdentifier.sql b/src/Database/DeliusStagingDb/Tables/AdditionalIdentifier.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/AdditionalIdentifier.sql
rename to src/Database/DeliusStagingDb/Tables/AdditionalIdentifier.sql
diff --git a/src/DeliusStagingDb/Tables/AliasDetails.sql b/src/Database/DeliusStagingDb/Tables/AliasDetails.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/AliasDetails.sql
rename to src/Database/DeliusStagingDb/Tables/AliasDetails.sql
diff --git a/src/DeliusStagingDb/Tables/Disability.sql b/src/Database/DeliusStagingDb/Tables/Disability.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/Disability.sql
rename to src/Database/DeliusStagingDb/Tables/Disability.sql
diff --git a/src/DeliusStagingDb/Tables/Disposal.sql b/src/Database/DeliusStagingDb/Tables/Disposal.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/Disposal.sql
rename to src/Database/DeliusStagingDb/Tables/Disposal.sql
diff --git a/src/DeliusStagingDb/Tables/EthnicityLookup.sql b/src/Database/DeliusStagingDb/Tables/EthnicityLookup.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/EthnicityLookup.sql
rename to src/Database/DeliusStagingDb/Tables/EthnicityLookup.sql
diff --git a/src/DeliusStagingDb/Tables/EthnicityStandardLookup.sql b/src/Database/DeliusStagingDb/Tables/EthnicityStandardLookup.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/EthnicityStandardLookup.sql
rename to src/Database/DeliusStagingDb/Tables/EthnicityStandardLookup.sql
diff --git a/src/DeliusStagingDb/Tables/EventDetails.sql b/src/Database/DeliusStagingDb/Tables/EventDetails.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/EventDetails.sql
rename to src/Database/DeliusStagingDb/Tables/EventDetails.sql
diff --git a/src/DeliusStagingDb/Tables/Header.sql b/src/Database/DeliusStagingDb/Tables/Header.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/Header.sql
rename to src/Database/DeliusStagingDb/Tables/Header.sql
diff --git a/src/DeliusStagingDb/Tables/MainOffence.sql b/src/Database/DeliusStagingDb/Tables/MainOffence.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/MainOffence.sql
rename to src/Database/DeliusStagingDb/Tables/MainOffence.sql
diff --git a/src/DeliusStagingDb/Tables/NINOValidPrefixesLookup.sql b/src/Database/DeliusStagingDb/Tables/NINOValidPrefixesLookup.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/NINOValidPrefixesLookup.sql
rename to src/Database/DeliusStagingDb/Tables/NINOValidPrefixesLookup.sql
diff --git a/src/DeliusStagingDb/Tables/NationalityLookup.sql b/src/Database/DeliusStagingDb/Tables/NationalityLookup.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/NationalityLookup.sql
rename to src/Database/DeliusStagingDb/Tables/NationalityLookup.sql
diff --git a/src/DeliusStagingDb/Tables/OAS.sql b/src/Database/DeliusStagingDb/Tables/OAS.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/OAS.sql
rename to src/Database/DeliusStagingDb/Tables/OAS.sql
diff --git a/src/DeliusStagingDb/Tables/OffenderAddress.sql b/src/Database/DeliusStagingDb/Tables/OffenderAddress.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/OffenderAddress.sql
rename to src/Database/DeliusStagingDb/Tables/OffenderAddress.sql
diff --git a/src/DeliusStagingDb/Tables/OffenderManager.sql b/src/Database/DeliusStagingDb/Tables/OffenderManager.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/OffenderManager.sql
rename to src/Database/DeliusStagingDb/Tables/OffenderManager.sql
diff --git a/src/DeliusStagingDb/Tables/OffenderManagerBuildings.sql b/src/Database/DeliusStagingDb/Tables/OffenderManagerBuildings.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/OffenderManagerBuildings.sql
rename to src/Database/DeliusStagingDb/Tables/OffenderManagerBuildings.sql
diff --git a/src/DeliusStagingDb/Tables/OffenderManagerTeam.sql b/src/Database/DeliusStagingDb/Tables/OffenderManagerTeam.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/OffenderManagerTeam.sql
rename to src/Database/DeliusStagingDb/Tables/OffenderManagerTeam.sql
diff --git a/src/DeliusStagingDb/Tables/OffenderToOffenderManagerMappings.sql b/src/Database/DeliusStagingDb/Tables/OffenderToOffenderManagerMappings.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/OffenderToOffenderManagerMappings.sql
rename to src/Database/DeliusStagingDb/Tables/OffenderToOffenderManagerMappings.sql
diff --git a/src/DeliusStagingDb/Tables/OffenderTransfer.sql b/src/Database/DeliusStagingDb/Tables/OffenderTransfer.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/OffenderTransfer.sql
rename to src/Database/DeliusStagingDb/Tables/OffenderTransfer.sql
diff --git a/src/DeliusStagingDb/Tables/Offenders.sql b/src/Database/DeliusStagingDb/Tables/Offenders.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/Offenders.sql
rename to src/Database/DeliusStagingDb/Tables/Offenders.sql
diff --git a/src/DeliusStagingDb/Tables/OrderManager.sql b/src/Database/DeliusStagingDb/Tables/OrderManager.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/OrderManager.sql
rename to src/Database/DeliusStagingDb/Tables/OrderManager.sql
diff --git a/src/DeliusStagingDb/Tables/PersonalCircumstances.sql b/src/Database/DeliusStagingDb/Tables/PersonalCircumstances.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/PersonalCircumstances.sql
rename to src/Database/DeliusStagingDb/Tables/PersonalCircumstances.sql
diff --git a/src/DeliusStagingDb/Tables/Provision.sql b/src/Database/DeliusStagingDb/Tables/Provision.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/Provision.sql
rename to src/Database/DeliusStagingDb/Tables/Provision.sql
diff --git a/src/DeliusStagingDb/Tables/RegistrationDetails.sql b/src/Database/DeliusStagingDb/Tables/RegistrationDetails.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/RegistrationDetails.sql
rename to src/Database/DeliusStagingDb/Tables/RegistrationDetails.sql
diff --git a/src/DeliusStagingDb/Tables/Release.sql b/src/Database/DeliusStagingDb/Tables/Release.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/Release.sql
rename to src/Database/DeliusStagingDb/Tables/Release.sql
diff --git a/src/DeliusStagingDb/Tables/Requirement.sql b/src/Database/DeliusStagingDb/Tables/Requirement.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/Requirement.sql
rename to src/Database/DeliusStagingDb/Tables/Requirement.sql
diff --git a/src/DeliusStagingDb/Tables/StandardisationReference.sql b/src/Database/DeliusStagingDb/Tables/StandardisationReference.sql
similarity index 100%
rename from src/DeliusStagingDb/Tables/StandardisationReference.sql
rename to src/Database/DeliusStagingDb/Tables/StandardisationReference.sql
diff --git a/src/MatchingDb/Indexes/IX_Candidates.sql b/src/Database/MatchingDb/Indexes/IX_Candidates.sql
similarity index 100%
rename from src/MatchingDb/Indexes/IX_Candidates.sql
rename to src/Database/MatchingDb/Indexes/IX_Candidates.sql
diff --git a/src/MatchingDb/Indexes/IX_Matches.sql b/src/Database/MatchingDb/Indexes/IX_Matches.sql
similarity index 100%
rename from src/MatchingDb/Indexes/IX_Matches.sql
rename to src/Database/MatchingDb/Indexes/IX_Matches.sql
diff --git a/src/MatchingDb/MatchingDb.sqlproj b/src/Database/MatchingDb/MatchingDb.sqlproj
similarity index 100%
rename from src/MatchingDb/MatchingDb.sqlproj
rename to src/Database/MatchingDb/MatchingDb.sqlproj
diff --git a/src/MatchingDb/Schema/Matching.sql b/src/Database/MatchingDb/Schema/Matching.sql
similarity index 100%
rename from src/MatchingDb/Schema/Matching.sql
rename to src/Database/MatchingDb/Schema/Matching.sql
diff --git a/src/MatchingDb/Stored Procedures/InsertCandidates.sql b/src/Database/MatchingDb/Stored Procedures/InsertCandidates.sql
similarity index 100%
rename from src/MatchingDb/Stored Procedures/InsertCandidates.sql
rename to src/Database/MatchingDb/Stored Procedures/InsertCandidates.sql
diff --git a/src/MatchingDb/Stored Procedures/TruncateTables.sql b/src/Database/MatchingDb/Stored Procedures/TruncateTables.sql
similarity index 100%
rename from src/MatchingDb/Stored Procedures/TruncateTables.sql
rename to src/Database/MatchingDb/Stored Procedures/TruncateTables.sql
diff --git a/src/MatchingDb/Tables/Blocks.sql b/src/Database/MatchingDb/Tables/Blocks.sql
similarity index 100%
rename from src/MatchingDb/Tables/Blocks.sql
rename to src/Database/MatchingDb/Tables/Blocks.sql
diff --git a/src/MatchingDb/Tables/Candidates.sql b/src/Database/MatchingDb/Tables/Candidates.sql
similarity index 100%
rename from src/MatchingDb/Tables/Candidates.sql
rename to src/Database/MatchingDb/Tables/Candidates.sql
diff --git a/src/MatchingDb/Tables/Matches.sql b/src/Database/MatchingDb/Tables/Matches.sql
similarity index 100%
rename from src/MatchingDb/Tables/Matches.sql
rename to src/Database/MatchingDb/Tables/Matches.sql
diff --git a/src/MatchingDb/Views/ListBlockedCandidates.sql b/src/Database/MatchingDb/Views/ListBlockedCandidates.sql
similarity index 100%
rename from src/MatchingDb/Views/ListBlockedCandidates.sql
rename to src/Database/MatchingDb/Views/ListBlockedCandidates.sql
diff --git a/src/MatchingDb/Views/ListMatches.sql b/src/Database/MatchingDb/Views/ListMatches.sql
similarity index 100%
rename from src/MatchingDb/Views/ListMatches.sql
rename to src/Database/MatchingDb/Views/ListMatches.sql
diff --git a/src/OfflocRunningPictureDb/Functions/StandardiseCRO.sql b/src/Database/OfflocRunningPictureDb/Functions/StandardiseCRO.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Functions/StandardiseCRO.sql
rename to src/Database/OfflocRunningPictureDb/Functions/StandardiseCRO.sql
diff --git a/src/OfflocRunningPictureDb/Functions/StandardisePNC.sql b/src/Database/OfflocRunningPictureDb/Functions/StandardisePNC.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Functions/StandardisePNC.sql
rename to src/Database/OfflocRunningPictureDb/Functions/StandardisePNC.sql
diff --git a/src/OfflocRunningPictureDb/Functions/StandardisePrisonNumber.sql b/src/Database/OfflocRunningPictureDb/Functions/StandardisePrisonNumber.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Functions/StandardisePrisonNumber.sql
rename to src/Database/OfflocRunningPictureDb/Functions/StandardisePrisonNumber.sql
diff --git a/src/OfflocRunningPictureDb/Indexes/IX_RecordMatchingView.sql b/src/Database/OfflocRunningPictureDb/Indexes/IX_RecordMatchingView.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Indexes/IX_RecordMatchingView.sql
rename to src/Database/OfflocRunningPictureDb/Indexes/IX_RecordMatchingView.sql
diff --git a/src/OfflocRunningPictureDb/OfflocRunningPictureDb.sqlproj b/src/Database/OfflocRunningPictureDb/OfflocRunningPictureDb.sqlproj
similarity index 100%
rename from src/OfflocRunningPictureDb/OfflocRunningPictureDb.sqlproj
rename to src/Database/OfflocRunningPictureDb/OfflocRunningPictureDb.sqlproj
diff --git a/src/OfflocRunningPictureDb/Schemas/OfflocRunningPicture.sql b/src/Database/OfflocRunningPictureDb/Schemas/OfflocRunningPicture.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Schemas/OfflocRunningPicture.sql
rename to src/Database/OfflocRunningPictureDb/Schemas/OfflocRunningPicture.sql
diff --git a/src/OfflocRunningPictureDb/Schemas/OfflocTemporal.sql b/src/Database/OfflocRunningPictureDb/Schemas/OfflocTemporal.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Schemas/OfflocTemporal.sql
rename to src/Database/OfflocRunningPictureDb/Schemas/OfflocTemporal.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeActivities.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeActivities.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeActivities.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeActivities.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeAddresses.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeAddresses.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeAddresses.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeAddresses.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeAgencies.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeAgencies.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeAgencies.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeAgencies.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeAll.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeAll.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeAll.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeAll.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeAssessments.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeAssessments.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeAssessments.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeAssessments.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeBookings.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeBookings.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeBookings.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeBookings.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeEmployment.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeEmployment.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeEmployment.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeEmployment.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeFlags.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeFlags.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeFlags.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeFlags.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeIdentifiers.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeIdentifiers.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeIdentifiers.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeIdentifiers.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeIncentiveLevel.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeIncentiveLevel.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeIncentiveLevel.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeIncentiveLevel.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeLocations.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeLocations.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeLocations.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeLocations.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeMainOffence.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeMainOffence.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeMainOffence.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeMainOffence.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeMovements.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeMovements.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeMovements.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeMovements.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeOffenderAgencies.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeOffenderAgencies.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeOffenderAgencies.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeOffenderAgencies.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeOffenderStatus.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeOffenderStatus.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeOffenderStatus.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeOffenderStatus.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeOtherOffences.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeOtherOffences.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeOtherOffences.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeOtherOffences.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergePNC.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergePNC.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergePNC.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergePNC.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergePersonalDetails.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergePersonalDetails.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergePersonalDetails.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergePersonalDetails.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergePreviousPrisonNumbers.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergePreviousPrisonNumbers.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergePreviousPrisonNumbers.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergePreviousPrisonNumbers.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeSentenceInformation.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeSentenceInformation.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeSentenceInformation.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeSentenceInformation.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeSexOffenders.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeSexOffenders.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeSexOffenders.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeSexOffenders.sql
diff --git a/src/OfflocRunningPictureDb/Stored Procedures/MergeStandardisationReference.sql b/src/Database/OfflocRunningPictureDb/Stored Procedures/MergeStandardisationReference.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Stored Procedures/MergeStandardisationReference.sql
rename to src/Database/OfflocRunningPictureDb/Stored Procedures/MergeStandardisationReference.sql
diff --git a/src/OfflocRunningPictureDb/Tables/Activities.sql b/src/Database/OfflocRunningPictureDb/Tables/Activities.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/Activities.sql
rename to src/Database/OfflocRunningPictureDb/Tables/Activities.sql
diff --git a/src/OfflocRunningPictureDb/Tables/Addresses.sql b/src/Database/OfflocRunningPictureDb/Tables/Addresses.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/Addresses.sql
rename to src/Database/OfflocRunningPictureDb/Tables/Addresses.sql
diff --git a/src/OfflocRunningPictureDb/Tables/Agencies.sql b/src/Database/OfflocRunningPictureDb/Tables/Agencies.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/Agencies.sql
rename to src/Database/OfflocRunningPictureDb/Tables/Agencies.sql
diff --git a/src/OfflocRunningPictureDb/Tables/Assessments.sql b/src/Database/OfflocRunningPictureDb/Tables/Assessments.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/Assessments.sql
rename to src/Database/OfflocRunningPictureDb/Tables/Assessments.sql
diff --git a/src/OfflocRunningPictureDb/Tables/Bookings.sql b/src/Database/OfflocRunningPictureDb/Tables/Bookings.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/Bookings.sql
rename to src/Database/OfflocRunningPictureDb/Tables/Bookings.sql
diff --git a/src/OfflocRunningPictureDb/Tables/Employment.sql b/src/Database/OfflocRunningPictureDb/Tables/Employment.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/Employment.sql
rename to src/Database/OfflocRunningPictureDb/Tables/Employment.sql
diff --git a/src/OfflocRunningPictureDb/Tables/Flags.sql b/src/Database/OfflocRunningPictureDb/Tables/Flags.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/Flags.sql
rename to src/Database/OfflocRunningPictureDb/Tables/Flags.sql
diff --git a/src/OfflocRunningPictureDb/Tables/Identifiers.sql b/src/Database/OfflocRunningPictureDb/Tables/Identifiers.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/Identifiers.sql
rename to src/Database/OfflocRunningPictureDb/Tables/Identifiers.sql
diff --git a/src/OfflocRunningPictureDb/Tables/IncentiveLevel.sql b/src/Database/OfflocRunningPictureDb/Tables/IncentiveLevel.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/IncentiveLevel.sql
rename to src/Database/OfflocRunningPictureDb/Tables/IncentiveLevel.sql
diff --git a/src/OfflocRunningPictureDb/Tables/Locations.sql b/src/Database/OfflocRunningPictureDb/Tables/Locations.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/Locations.sql
rename to src/Database/OfflocRunningPictureDb/Tables/Locations.sql
diff --git a/src/OfflocRunningPictureDb/Tables/MainOffence.sql b/src/Database/OfflocRunningPictureDb/Tables/MainOffence.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/MainOffence.sql
rename to src/Database/OfflocRunningPictureDb/Tables/MainOffence.sql
diff --git a/src/OfflocRunningPictureDb/Tables/Movements.sql b/src/Database/OfflocRunningPictureDb/Tables/Movements.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/Movements.sql
rename to src/Database/OfflocRunningPictureDb/Tables/Movements.sql
diff --git a/src/OfflocRunningPictureDb/Tables/OffenderAgencies.sql b/src/Database/OfflocRunningPictureDb/Tables/OffenderAgencies.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/OffenderAgencies.sql
rename to src/Database/OfflocRunningPictureDb/Tables/OffenderAgencies.sql
diff --git a/src/OfflocRunningPictureDb/Tables/OffenderStatus.sql b/src/Database/OfflocRunningPictureDb/Tables/OffenderStatus.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/OffenderStatus.sql
rename to src/Database/OfflocRunningPictureDb/Tables/OffenderStatus.sql
diff --git a/src/OfflocRunningPictureDb/Tables/OtherOffences.sql b/src/Database/OfflocRunningPictureDb/Tables/OtherOffences.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/OtherOffences.sql
rename to src/Database/OfflocRunningPictureDb/Tables/OtherOffences.sql
diff --git a/src/OfflocRunningPictureDb/Tables/PNC.sql b/src/Database/OfflocRunningPictureDb/Tables/PNC.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/PNC.sql
rename to src/Database/OfflocRunningPictureDb/Tables/PNC.sql
diff --git a/src/OfflocRunningPictureDb/Tables/PersonalDetails.sql b/src/Database/OfflocRunningPictureDb/Tables/PersonalDetails.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/PersonalDetails.sql
rename to src/Database/OfflocRunningPictureDb/Tables/PersonalDetails.sql
diff --git a/src/OfflocRunningPictureDb/Tables/PreviousPrisonNumbers.sql b/src/Database/OfflocRunningPictureDb/Tables/PreviousPrisonNumbers.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/PreviousPrisonNumbers.sql
rename to src/Database/OfflocRunningPictureDb/Tables/PreviousPrisonNumbers.sql
diff --git a/src/OfflocRunningPictureDb/Tables/ProcessedFiles.sql b/src/Database/OfflocRunningPictureDb/Tables/ProcessedFiles.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/ProcessedFiles.sql
rename to src/Database/OfflocRunningPictureDb/Tables/ProcessedFiles.sql
diff --git a/src/OfflocRunningPictureDb/Tables/SentenceInformation.sql b/src/Database/OfflocRunningPictureDb/Tables/SentenceInformation.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/SentenceInformation.sql
rename to src/Database/OfflocRunningPictureDb/Tables/SentenceInformation.sql
diff --git a/src/OfflocRunningPictureDb/Tables/SexOffenders.sql b/src/Database/OfflocRunningPictureDb/Tables/SexOffenders.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/SexOffenders.sql
rename to src/Database/OfflocRunningPictureDb/Tables/SexOffenders.sql
diff --git a/src/OfflocRunningPictureDb/Tables/StandardisationReference.sql b/src/Database/OfflocRunningPictureDb/Tables/StandardisationReference.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/StandardisationReference.sql
rename to src/Database/OfflocRunningPictureDb/Tables/StandardisationReference.sql
diff --git a/src/OfflocRunningPictureDb/Tables/VeteranFlagLog.sql b/src/Database/OfflocRunningPictureDb/Tables/VeteranFlagLog.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Tables/VeteranFlagLog.sql
rename to src/Database/OfflocRunningPictureDb/Tables/VeteranFlagLog.sql
diff --git a/src/OfflocRunningPictureDb/Views/CROView.sql b/src/Database/OfflocRunningPictureDb/Views/CROView.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Views/CROView.sql
rename to src/Database/OfflocRunningPictureDb/Views/CROView.sql
diff --git a/src/OfflocRunningPictureDb/Views/PNCView.sql b/src/Database/OfflocRunningPictureDb/Views/PNCView.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Views/PNCView.sql
rename to src/Database/OfflocRunningPictureDb/Views/PNCView.sql
diff --git a/src/OfflocRunningPictureDb/Views/PersonalDetailsCleanView.sql b/src/Database/OfflocRunningPictureDb/Views/PersonalDetailsCleanView.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Views/PersonalDetailsCleanView.sql
rename to src/Database/OfflocRunningPictureDb/Views/PersonalDetailsCleanView.sql
diff --git a/src/OfflocRunningPictureDb/Views/PrisonNumberView.sql b/src/Database/OfflocRunningPictureDb/Views/PrisonNumberView.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Views/PrisonNumberView.sql
rename to src/Database/OfflocRunningPictureDb/Views/PrisonNumberView.sql
diff --git a/src/OfflocRunningPictureDb/Views/RecordMatchingView.sql b/src/Database/OfflocRunningPictureDb/Views/RecordMatchingView.sql
similarity index 100%
rename from src/OfflocRunningPictureDb/Views/RecordMatchingView.sql
rename to src/Database/OfflocRunningPictureDb/Views/RecordMatchingView.sql
diff --git a/src/OfflocStagingDb/Functions/StandardiseCRN.sql b/src/Database/OfflocStagingDb/Functions/StandardiseCRN.sql
similarity index 100%
rename from src/OfflocStagingDb/Functions/StandardiseCRN.sql
rename to src/Database/OfflocStagingDb/Functions/StandardiseCRN.sql
diff --git a/src/OfflocStagingDb/Functions/StandardiseCRO.sql b/src/Database/OfflocStagingDb/Functions/StandardiseCRO.sql
similarity index 100%
rename from src/OfflocStagingDb/Functions/StandardiseCRO.sql
rename to src/Database/OfflocStagingDb/Functions/StandardiseCRO.sql
diff --git a/src/OfflocStagingDb/Functions/StandardiseEthnicity.sql b/src/Database/OfflocStagingDb/Functions/StandardiseEthnicity.sql
similarity index 100%
rename from src/OfflocStagingDb/Functions/StandardiseEthnicity.sql
rename to src/Database/OfflocStagingDb/Functions/StandardiseEthnicity.sql
diff --git a/src/OfflocStagingDb/Functions/StandardiseGender.sql b/src/Database/OfflocStagingDb/Functions/StandardiseGender.sql
similarity index 100%
rename from src/OfflocStagingDb/Functions/StandardiseGender.sql
rename to src/Database/OfflocStagingDb/Functions/StandardiseGender.sql
diff --git a/src/OfflocStagingDb/Functions/StandardiseMilitaryServiceNumber.sql b/src/Database/OfflocStagingDb/Functions/StandardiseMilitaryServiceNumber.sql
similarity index 100%
rename from src/OfflocStagingDb/Functions/StandardiseMilitaryServiceNumber.sql
rename to src/Database/OfflocStagingDb/Functions/StandardiseMilitaryServiceNumber.sql
diff --git a/src/OfflocStagingDb/Functions/StandardiseName.sql b/src/Database/OfflocStagingDb/Functions/StandardiseName.sql
similarity index 100%
rename from src/OfflocStagingDb/Functions/StandardiseName.sql
rename to src/Database/OfflocStagingDb/Functions/StandardiseName.sql
diff --git a/src/OfflocStagingDb/Functions/StandardiseNationality.sql b/src/Database/OfflocStagingDb/Functions/StandardiseNationality.sql
similarity index 100%
rename from src/OfflocStagingDb/Functions/StandardiseNationality.sql
rename to src/Database/OfflocStagingDb/Functions/StandardiseNationality.sql
diff --git a/src/OfflocStagingDb/Functions/StandardiseNomisNumber.sql b/src/Database/OfflocStagingDb/Functions/StandardiseNomisNumber.sql
similarity index 100%
rename from src/OfflocStagingDb/Functions/StandardiseNomisNumber.sql
rename to src/Database/OfflocStagingDb/Functions/StandardiseNomisNumber.sql
diff --git a/src/OfflocStagingDb/Functions/StandardisePNC.sql b/src/Database/OfflocStagingDb/Functions/StandardisePNC.sql
similarity index 100%
rename from src/OfflocStagingDb/Functions/StandardisePNC.sql
rename to src/Database/OfflocStagingDb/Functions/StandardisePNC.sql
diff --git a/src/OfflocStagingDb/Functions/StandardisePhoneNumber.sql b/src/Database/OfflocStagingDb/Functions/StandardisePhoneNumber.sql
similarity index 100%
rename from src/OfflocStagingDb/Functions/StandardisePhoneNumber.sql
rename to src/Database/OfflocStagingDb/Functions/StandardisePhoneNumber.sql
diff --git a/src/OfflocStagingDb/Functions/StandardisePostCode.sql b/src/Database/OfflocStagingDb/Functions/StandardisePostCode.sql
similarity index 100%
rename from src/OfflocStagingDb/Functions/StandardisePostCode.sql
rename to src/Database/OfflocStagingDb/Functions/StandardisePostCode.sql
diff --git a/src/OfflocStagingDb/Functions/StandardisePrisonNumber.sql b/src/Database/OfflocStagingDb/Functions/StandardisePrisonNumber.sql
similarity index 100%
rename from src/OfflocStagingDb/Functions/StandardisePrisonNumber.sql
rename to src/Database/OfflocStagingDb/Functions/StandardisePrisonNumber.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_Activities.sql b/src/Database/OfflocStagingDb/Indexes/IX_Activities.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_Activities.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_Activities.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_Addresses.sql b/src/Database/OfflocStagingDb/Indexes/IX_Addresses.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_Addresses.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_Addresses.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_Assessments.sql b/src/Database/OfflocStagingDb/Indexes/IX_Assessments.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_Assessments.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_Assessments.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_Bookings.sql b/src/Database/OfflocStagingDb/Indexes/IX_Bookings.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_Bookings.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_Bookings.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_Employment.sql b/src/Database/OfflocStagingDb/Indexes/IX_Employment.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_Employment.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_Employment.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_Flags.sql b/src/Database/OfflocStagingDb/Indexes/IX_Flags.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_Flags.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_Flags.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_Identifiers.sql b/src/Database/OfflocStagingDb/Indexes/IX_Identifiers.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_Identifiers.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_Identifiers.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_IncentiveLevel.sql b/src/Database/OfflocStagingDb/Indexes/IX_IncentiveLevel.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_IncentiveLevel.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_IncentiveLevel.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_Locations.sql b/src/Database/OfflocStagingDb/Indexes/IX_Locations.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_Locations.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_Locations.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_MainOffence.sql b/src/Database/OfflocStagingDb/Indexes/IX_MainOffence.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_MainOffence.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_MainOffence.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_Movements.sql b/src/Database/OfflocStagingDb/Indexes/IX_Movements.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_Movements.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_Movements.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_OffenderAgencies.sql b/src/Database/OfflocStagingDb/Indexes/IX_OffenderAgencies.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_OffenderAgencies.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_OffenderAgencies.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_OffenderStatus.sql b/src/Database/OfflocStagingDb/Indexes/IX_OffenderStatus.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_OffenderStatus.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_OffenderStatus.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_OtherOffences.sql b/src/Database/OfflocStagingDb/Indexes/IX_OtherOffences.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_OtherOffences.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_OtherOffences.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_PNC.sql b/src/Database/OfflocStagingDb/Indexes/IX_PNC.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_PNC.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_PNC.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_PersonalDetails.sql b/src/Database/OfflocStagingDb/Indexes/IX_PersonalDetails.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_PersonalDetails.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_PersonalDetails.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_PreviousPrisonNumbers.sql b/src/Database/OfflocStagingDb/Indexes/IX_PreviousPrisonNumbers.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_PreviousPrisonNumbers.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_PreviousPrisonNumbers.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_SentenceInformation.sql b/src/Database/OfflocStagingDb/Indexes/IX_SentenceInformation.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_SentenceInformation.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_SentenceInformation.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_SexOffenders.sql b/src/Database/OfflocStagingDb/Indexes/IX_SexOffenders.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_SexOffenders.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_SexOffenders.sql
diff --git a/src/OfflocStagingDb/Indexes/IX_VeteranFlagLog.sql b/src/Database/OfflocStagingDb/Indexes/IX_VeteranFlagLog.sql
similarity index 100%
rename from src/OfflocStagingDb/Indexes/IX_VeteranFlagLog.sql
rename to src/Database/OfflocStagingDb/Indexes/IX_VeteranFlagLog.sql
diff --git a/src/OfflocStagingDb/OfflocStagingDb.refactorlog b/src/Database/OfflocStagingDb/OfflocStagingDb.refactorlog
similarity index 100%
rename from src/OfflocStagingDb/OfflocStagingDb.refactorlog
rename to src/Database/OfflocStagingDb/OfflocStagingDb.refactorlog
diff --git a/src/OfflocStagingDb/OfflocStagingDb.sqlproj b/src/Database/OfflocStagingDb/OfflocStagingDb.sqlproj
similarity index 100%
rename from src/OfflocStagingDb/OfflocStagingDb.sqlproj
rename to src/Database/OfflocStagingDb/OfflocStagingDb.sqlproj
diff --git a/src/OfflocStagingDb/Schemas/OfflocStaging.sql b/src/Database/OfflocStagingDb/Schemas/OfflocStaging.sql
similarity index 100%
rename from src/OfflocStagingDb/Schemas/OfflocStaging.sql
rename to src/Database/OfflocStagingDb/Schemas/OfflocStaging.sql
diff --git a/src/OfflocStagingDb/Stored Procedures/AddReferenceData.sql b/src/Database/OfflocStagingDb/Stored Procedures/AddReferenceData.sql
similarity index 100%
rename from src/OfflocStagingDb/Stored Procedures/AddReferenceData.sql
rename to src/Database/OfflocStagingDb/Stored Procedures/AddReferenceData.sql
diff --git a/src/OfflocStagingDb/Stored Procedures/ClearOfflocStaging.sql b/src/Database/OfflocStagingDb/Stored Procedures/ClearOfflocStaging.sql
similarity index 100%
rename from src/OfflocStagingDb/Stored Procedures/ClearOfflocStaging.sql
rename to src/Database/OfflocStagingDb/Stored Procedures/ClearOfflocStaging.sql
diff --git a/src/OfflocStagingDb/Stored Procedures/Import.sql b/src/Database/OfflocStagingDb/Stored Procedures/Import.sql
similarity index 100%
rename from src/OfflocStagingDb/Stored Procedures/Import.sql
rename to src/Database/OfflocStagingDb/Stored Procedures/Import.sql
diff --git a/src/OfflocStagingDb/Stored Procedures/InitializeStandardisationLookups.sql b/src/Database/OfflocStagingDb/Stored Procedures/InitializeStandardisationLookups.sql
similarity index 100%
rename from src/OfflocStagingDb/Stored Procedures/InitializeStandardisationLookups.sql
rename to src/Database/OfflocStagingDb/Stored Procedures/InitializeStandardisationLookups.sql
diff --git a/src/OfflocStagingDb/Stored Procedures/StandardiseCRO.sql b/src/Database/OfflocStagingDb/Stored Procedures/StandardiseCRO.sql
similarity index 100%
rename from src/OfflocStagingDb/Stored Procedures/StandardiseCRO.sql
rename to src/Database/OfflocStagingDb/Stored Procedures/StandardiseCRO.sql
diff --git a/src/OfflocStagingDb/Stored Procedures/StandardiseData.sql b/src/Database/OfflocStagingDb/Stored Procedures/StandardiseData.sql
similarity index 100%
rename from src/OfflocStagingDb/Stored Procedures/StandardiseData.sql
rename to src/Database/OfflocStagingDb/Stored Procedures/StandardiseData.sql
diff --git a/src/OfflocStagingDb/Stored Procedures/StandardisePNC.sql b/src/Database/OfflocStagingDb/Stored Procedures/StandardisePNC.sql
similarity index 100%
rename from src/OfflocStagingDb/Stored Procedures/StandardisePNC.sql
rename to src/Database/OfflocStagingDb/Stored Procedures/StandardisePNC.sql
diff --git a/src/OfflocStagingDb/Stored Procedures/StandardisePhoneNumber.sql b/src/Database/OfflocStagingDb/Stored Procedures/StandardisePhoneNumber.sql
similarity index 100%
rename from src/OfflocStagingDb/Stored Procedures/StandardisePhoneNumber.sql
rename to src/Database/OfflocStagingDb/Stored Procedures/StandardisePhoneNumber.sql
diff --git a/src/OfflocStagingDb/Stored Procedures/StandardisePostCode.sql b/src/Database/OfflocStagingDb/Stored Procedures/StandardisePostCode.sql
similarity index 100%
rename from src/OfflocStagingDb/Stored Procedures/StandardisePostCode.sql
rename to src/Database/OfflocStagingDb/Stored Procedures/StandardisePostCode.sql
diff --git a/src/OfflocStagingDb/Stored Procedures/StandardisePrisonNumber.sql b/src/Database/OfflocStagingDb/Stored Procedures/StandardisePrisonNumber.sql
similarity index 100%
rename from src/OfflocStagingDb/Stored Procedures/StandardisePrisonNumber.sql
rename to src/Database/OfflocStagingDb/Stored Procedures/StandardisePrisonNumber.sql
diff --git a/src/OfflocStagingDb/Tables/Activities.sql b/src/Database/OfflocStagingDb/Tables/Activities.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/Activities.sql
rename to src/Database/OfflocStagingDb/Tables/Activities.sql
diff --git a/src/OfflocStagingDb/Tables/Addresses.sql b/src/Database/OfflocStagingDb/Tables/Addresses.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/Addresses.sql
rename to src/Database/OfflocStagingDb/Tables/Addresses.sql
diff --git a/src/OfflocStagingDb/Tables/Agencies.sql b/src/Database/OfflocStagingDb/Tables/Agencies.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/Agencies.sql
rename to src/Database/OfflocStagingDb/Tables/Agencies.sql
diff --git a/src/OfflocStagingDb/Tables/Assessments.sql b/src/Database/OfflocStagingDb/Tables/Assessments.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/Assessments.sql
rename to src/Database/OfflocStagingDb/Tables/Assessments.sql
diff --git a/src/OfflocStagingDb/Tables/Bookings.sql b/src/Database/OfflocStagingDb/Tables/Bookings.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/Bookings.sql
rename to src/Database/OfflocStagingDb/Tables/Bookings.sql
diff --git a/src/OfflocStagingDb/Tables/Employment.sql b/src/Database/OfflocStagingDb/Tables/Employment.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/Employment.sql
rename to src/Database/OfflocStagingDb/Tables/Employment.sql
diff --git a/src/OfflocStagingDb/Tables/EthnicityLookup.sql b/src/Database/OfflocStagingDb/Tables/EthnicityLookup.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/EthnicityLookup.sql
rename to src/Database/OfflocStagingDb/Tables/EthnicityLookup.sql
diff --git a/src/OfflocStagingDb/Tables/EthnicityStandardLookup.sql b/src/Database/OfflocStagingDb/Tables/EthnicityStandardLookup.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/EthnicityStandardLookup.sql
rename to src/Database/OfflocStagingDb/Tables/EthnicityStandardLookup.sql
diff --git a/src/OfflocStagingDb/Tables/Flags.sql b/src/Database/OfflocStagingDb/Tables/Flags.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/Flags.sql
rename to src/Database/OfflocStagingDb/Tables/Flags.sql
diff --git a/src/OfflocStagingDb/Tables/Identifiers.sql b/src/Database/OfflocStagingDb/Tables/Identifiers.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/Identifiers.sql
rename to src/Database/OfflocStagingDb/Tables/Identifiers.sql
diff --git a/src/OfflocStagingDb/Tables/IncentiveLevel.sql b/src/Database/OfflocStagingDb/Tables/IncentiveLevel.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/IncentiveLevel.sql
rename to src/Database/OfflocStagingDb/Tables/IncentiveLevel.sql
diff --git a/src/OfflocStagingDb/Tables/Locations.sql b/src/Database/OfflocStagingDb/Tables/Locations.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/Locations.sql
rename to src/Database/OfflocStagingDb/Tables/Locations.sql
diff --git a/src/OfflocStagingDb/Tables/MainOffence.sql b/src/Database/OfflocStagingDb/Tables/MainOffence.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/MainOffence.sql
rename to src/Database/OfflocStagingDb/Tables/MainOffence.sql
diff --git a/src/OfflocStagingDb/Tables/Movements.sql b/src/Database/OfflocStagingDb/Tables/Movements.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/Movements.sql
rename to src/Database/OfflocStagingDb/Tables/Movements.sql
diff --git a/src/OfflocStagingDb/Tables/NationalityLookup.sql b/src/Database/OfflocStagingDb/Tables/NationalityLookup.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/NationalityLookup.sql
rename to src/Database/OfflocStagingDb/Tables/NationalityLookup.sql
diff --git a/src/OfflocStagingDb/Tables/OffenderAgencies.sql b/src/Database/OfflocStagingDb/Tables/OffenderAgencies.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/OffenderAgencies.sql
rename to src/Database/OfflocStagingDb/Tables/OffenderAgencies.sql
diff --git a/src/OfflocStagingDb/Tables/OffenderStatus.sql b/src/Database/OfflocStagingDb/Tables/OffenderStatus.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/OffenderStatus.sql
rename to src/Database/OfflocStagingDb/Tables/OffenderStatus.sql
diff --git a/src/OfflocStagingDb/Tables/OtherOffences.sql b/src/Database/OfflocStagingDb/Tables/OtherOffences.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/OtherOffences.sql
rename to src/Database/OfflocStagingDb/Tables/OtherOffences.sql
diff --git a/src/OfflocStagingDb/Tables/PNC.sql b/src/Database/OfflocStagingDb/Tables/PNC.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/PNC.sql
rename to src/Database/OfflocStagingDb/Tables/PNC.sql
diff --git a/src/OfflocStagingDb/Tables/PersonalDetails.sql b/src/Database/OfflocStagingDb/Tables/PersonalDetails.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/PersonalDetails.sql
rename to src/Database/OfflocStagingDb/Tables/PersonalDetails.sql
diff --git a/src/OfflocStagingDb/Tables/PreviousPrisonNumbers.sql b/src/Database/OfflocStagingDb/Tables/PreviousPrisonNumbers.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/PreviousPrisonNumbers.sql
rename to src/Database/OfflocStagingDb/Tables/PreviousPrisonNumbers.sql
diff --git a/src/OfflocStagingDb/Tables/SentenceInformation.sql b/src/Database/OfflocStagingDb/Tables/SentenceInformation.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/SentenceInformation.sql
rename to src/Database/OfflocStagingDb/Tables/SentenceInformation.sql
diff --git a/src/OfflocStagingDb/Tables/SexOffenders.sql b/src/Database/OfflocStagingDb/Tables/SexOffenders.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/SexOffenders.sql
rename to src/Database/OfflocStagingDb/Tables/SexOffenders.sql
diff --git a/src/OfflocStagingDb/Tables/StandardisationReference.sql b/src/Database/OfflocStagingDb/Tables/StandardisationReference.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/StandardisationReference.sql
rename to src/Database/OfflocStagingDb/Tables/StandardisationReference.sql
diff --git a/src/OfflocStagingDb/Tables/VeteranFlagLog.sql b/src/Database/OfflocStagingDb/Tables/VeteranFlagLog.sql
similarity index 100%
rename from src/OfflocStagingDb/Tables/VeteranFlagLog.sql
rename to src/Database/OfflocStagingDb/Tables/VeteranFlagLog.sql
diff --git a/src/DbInteractions/DbBackgroundService.cs b/src/DbInteractions/DbBackgroundService.cs
index 0ee7a08..57f8b13 100644
--- a/src/DbInteractions/DbBackgroundService.cs
+++ b/src/DbInteractions/DbBackgroundService.cs
@@ -29,111 +29,111 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await Task.CompletedTask;
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
string[] results = await dbInteractionService.GetProcessedDeliusFileNames();
DeliusFilesReturnMessage msg = new DeliusFilesReturnMessage(results);
- dbMessagingService.DbPublishResponse(msg);
+ await dbMessagingService.DbPublishResponseAsync(msg);
}, TDbQueue.GetProcessedDeliusFiles);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
string[] results = await dbInteractionService.GetProcessedOfflocFileNames();
- dbMessagingService.DbPublishResponse(new OfflocFilesReturnMessage(results));
+ await dbMessagingService.DbPublishResponseAsync(new OfflocFilesReturnMessage(results));
}, TDbQueue.GetProcessedOfflocFiles);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
await dbInteractionService.StageDelius(message.fileName, message.filePath);
- dbMessagingService.DbPublishResponse(new StageDeliusReturnMessage());
- mergingService.MergingPublish(new DeliusFilesCleanupMessage(message.fileName));
+ await dbMessagingService.DbPublishResponseAsync(new StageDeliusReturnMessage());
+ await mergingService.MergingPublishAsync(new DeliusFilesCleanupMessage(message.fileName));
}, TDbQueue.StageDelius);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
//await dbInteractionService.StandardiseDeliusStaging();
await dbInteractionService.MergeDeliusPicture(message.fileName);
await dbInteractionService.ClearDeliusStaging();
- dbMessagingService.DbPublishResponse(new MergeDeliusReturnMessage());
+ await dbMessagingService.DbPublishResponseAsync(new MergeDeliusReturnMessage());
}, TDbQueue.MergeDelius);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
await dbInteractionService.ClearDeliusStaging();
- dbMessagingService.DbPublishResponse(new ResultClearDeliusStaging());
+ await dbMessagingService.DbPublishResponseAsync(new ResultClearDeliusStaging());
}, TDbQueue.ClearDeliusStaging);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
await dbInteractionService.StageOffloc(message.fileName);
- dbMessagingService.DbPublishResponse(new StageOfflocReturnMessage());
+ await dbMessagingService.DbPublishResponseAsync(new StageOfflocReturnMessage());
- mergingService.MergingPublish(new OfflocFilesCleanupMessage(message.fileName));
+ await mergingService.MergingPublishAsync(new OfflocFilesCleanupMessage(message.fileName));
}, TDbQueue.StageOffloc);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
await dbInteractionService.MergeOfflocPicture(message.fileName);
await dbInteractionService.ClearOfflocStaging();
- dbMessagingService.DbPublishResponse(new MergeOfflocReturnMessage());
+ await dbMessagingService.DbPublishResponseAsync(new MergeOfflocReturnMessage());
}, TDbQueue.MergeOffloc);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
await dbInteractionService.ClearOfflocStaging();
- dbMessagingService.DbPublishResponse(new ResultClearOfflocStaging());
+ await dbMessagingService.DbPublishResponseAsync(new ResultClearOfflocStaging());
}, TDbQueue.ClearOfflocStaging);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
int res = await dbInteractionService.DeliusGetFileIdLastFull();
- dbMessagingService.DbPublishResponse(new ResultDeliusGetLastFullMessage(res));
+ await dbMessagingService.DbPublishResponseAsync(new ResultDeliusGetLastFullMessage(res));
}, TDbQueue.DeliusGetLastFullId);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
await dbInteractionService.CreateOfflocProcessedFileEntry(message.fileName, message.fileId, message.archiveName);
- dbMessagingService.DbPublishResponse(new ResultOfflocFileProcessingStarted());
+ await dbMessagingService.DbPublishResponseAsync(new ResultOfflocFileProcessingStarted());
}, TDbQueue.OfflocFileProcessingStarted);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
await dbInteractionService.CreateDeliusProcessedFileEntry(message.fileName, message.fileId);
- dbMessagingService.DbPublishResponse(new ResultDeliusFileProcessingStarted());
+ await dbMessagingService.DbPublishResponseAsync(new ResultDeliusFileProcessingStarted());
}, TDbQueue.DeliusFileProcessingStarted);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
await dbInteractionService.AssociateOfflocFileWithArchive(message.fileName, message.archiveName);
- dbMessagingService.DbPublishResponse(new ResultAssociateOfflocFileWithArchiveMessage());
+ await dbMessagingService.DbPublishResponseAsync(new ResultAssociateOfflocFileWithArchiveMessage());
}, TDbQueue.AssociateOfflocFileWithArchive);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
bool result = await dbInteractionService.IsDeliusReadyForProcessing();
- dbMessagingService.DbPublishResponse(new IsDeliusReadyForProcessingReturnMessage(result));
+ await dbMessagingService.DbPublishResponseAsync(new IsDeliusReadyForProcessingReturnMessage(result));
}, TDbQueue.IsDeliusReadyForProcessing);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
bool result = await dbInteractionService.IsOfflocReadyForProcessing();
- dbMessagingService.DbPublishResponse(new IsOfflocReadyForProcessingReturnMessage(result));
+ await dbMessagingService.DbPublishResponseAsync(new IsOfflocReadyForProcessingReturnMessage(result));
}, TDbQueue.IsOfflocReadyForProcessing);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
string? result = await dbInteractionService.GetLastProcessedOfflocFileName();
- dbMessagingService.DbPublishResponse(new ResultGetLastProcessedOfflocFileMessage(result));
+ await dbMessagingService.DbPublishResponseAsync(new ResultGetLastProcessedOfflocFileMessage(result));
}, TDbQueue.GetLastProcessedOfflocFile);
- dbMessagingService.SubscribeToDbRequest(async (message) =>
+ await dbMessagingService.SubscribeToDbRequestAsync(async (message) =>
{
string? result = await dbInteractionService.GetLastProcessedDeliusFileName();
- dbMessagingService.DbPublishResponse(new ResultGetLastProcessedDeliusFileMessage(result));
+ await dbMessagingService.DbPublishResponseAsync(new ResultGetLastProcessedDeliusFileMessage(result));
}, TDbQueue.GetLastProcessedDeliusFile);
}
diff --git a/src/DbInteractions/DbInteractions.csproj b/src/DbInteractions/DbInteractions.csproj
index 907ff37..f0648c3 100644
--- a/src/DbInteractions/DbInteractions.csproj
+++ b/src/DbInteractions/DbInteractions.csproj
@@ -16,8 +16,8 @@
-
-
+
+
diff --git a/src/DbInteractions/Dockerfile b/src/DbInteractions/Dockerfile
deleted file mode 100644
index d21b5ed..0000000
--- a/src/DbInteractions/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
-
-FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
-WORKDIR /app
-
-FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
-WORKDIR /src
-COPY ["src/Directory.Packages.props", "src/"]
-COPY ["src/DbInteractions/DbInteractions.csproj", "src/DbInteractions/"]
-COPY ["src/FileStorage/FileStorage.csproj", "src/FileStorage/"]
-COPY ["src/Messaging/Messaging.csproj", "src/Messaging/"]
-RUN dotnet restore "src/DbInteractions/DbInteractions.csproj"
-COPY . .
-WORKDIR "/src/src/DbInteractions"
-RUN dotnet build "DbInteractions.csproj" -c Release -o /app/build
-
-FROM build AS publish
-RUN dotnet publish "DbInteractions.csproj" -c Release -o /app/publish /p:UseAppHost=false
-
-FROM base AS final
-WORKDIR /app
-COPY --from=publish /app/publish .
-ENTRYPOINT ["dotnet", "DbInteractions.dll"]
\ No newline at end of file
diff --git a/src/DbInteractions/Program.cs b/src/DbInteractions/Program.cs
index 2ca9740..17125a5 100644
--- a/src/DbInteractions/Program.cs
+++ b/src/DbInteractions/Program.cs
@@ -45,9 +45,14 @@
builder.Services.AddSingleton(builder.Configuration);
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
+ builder.Services.AddSingleton(sp =>
+ {
+ var rabbitContext = sp.GetRequiredService();
+ return RabbitService.CreateAsync(rabbitContext).GetAwaiter().GetResult();
+ });
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
builder.Services.AddSingleton();
builder.Services.AddHostedService();
diff --git a/src/DbInteractions/Services/DbInteractionService.cs b/src/DbInteractions/Services/DbInteractionService.cs
index 4c6b73e..a0d26db 100644
--- a/src/DbInteractions/Services/DbInteractionService.cs
+++ b/src/DbInteractions/Services/DbInteractionService.cs
@@ -90,7 +90,7 @@ public async Task DeliusGetFileIdLastFull()
}
catch (SqlException e)
{
- statusService.StatusPublish(new StatusUpdateMessage(e.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(e.Message));
return 0;
}
}
@@ -160,7 +160,7 @@ public async Task StageDelius(string fileName, string filePath)
{
string folderName = filePath.Split('/').Last();
- statusService.StatusPublish(new StatusUpdateMessage($"Delius staging started for file number {fileName}"));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"Delius staging started for file number {fileName}"));
string containerFlag = string.Empty;
if (inContainer)
@@ -190,18 +190,18 @@ public async Task StageDelius(string fileName, string filePath)
}
catch (Exception e)
{
- statusService.StatusPublish(new StatusUpdateMessage(e.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(e.Message));
return;
}
}
- statusService.StatusPublish(new StatusUpdateMessage($"Delius staging finished for file {fileName}."));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"Delius staging finished for file {fileName}."));
}
public async Task StageOffloc(string fileName)
{
string folderName = fileName.Split('.').First();
- statusService.StatusPublish(new StatusUpdateMessage($"Offloc staging started for file {fileName}."));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"Offloc staging started for file {fileName}."));
var offlocConn = new SqlConnection(offlocStagingConnString);
using (offlocConn)
@@ -219,12 +219,12 @@ public async Task StageOffloc(string fileName)
}
catch (Exception e)
{
- statusService.StatusPublish(new StatusUpdateMessage(e.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(e.Message));
return;
}
}
- statusService.StatusPublish(new StatusUpdateMessage($"Offloc staging finished for file {fileName}."));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"Offloc staging finished for file {fileName}."));
}
//Calls merge and then on completion
public async Task StandardiseDeliusStaging()
@@ -245,11 +245,11 @@ public async Task StandardiseDeliusStaging()
}
catch (SqlException exception)
{
- statusService.StatusPublish(new StatusUpdateMessage(exception.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(exception.Message));
return;
}
}
- statusService.StatusPublish(new StatusUpdateMessage("Delius staging database standardisation complete."));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage("Delius staging database standardisation complete."));
}
//Calls merge and then on completion
public async Task MergeDeliusPicture(string fileName)
@@ -272,11 +272,11 @@ public async Task MergeDeliusPicture(string fileName)
}
catch (SqlException exception)
{
- statusService.StatusPublish(new StatusUpdateMessage(exception.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(exception.Message));
return;
}
}
- statusService.StatusPublish(new StatusUpdateMessage("Delius merging complete."));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage("Delius merging complete."));
}
public async Task ClearDeliusStaging()
@@ -297,11 +297,11 @@ public async Task ClearDeliusStaging()
}
catch (SqlException exception)
{
- statusService.StatusPublish(new StatusUpdateMessage(exception.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(exception.Message));
return;
}
}
- statusService.StatusPublish(new StatusUpdateMessage("Delius staging database cleared."));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage("Delius staging database cleared."));
}
public async Task MergeOfflocPicture(string fileName)
@@ -324,11 +324,11 @@ public async Task MergeOfflocPicture(string fileName)
}
catch (SqlException e)
{
- statusService.StatusPublish(new StatusUpdateMessage(e.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(e.Message));
return;
}
}
- statusService.StatusPublish(new StatusUpdateMessage("Offloc merging complete."));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage("Offloc merging complete."));
}
public async Task ClearOfflocStaging()
@@ -348,12 +348,12 @@ public async Task ClearOfflocStaging()
}
catch (SqlException e)
{
- statusService.StatusPublish(new StatusUpdateMessage(e.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(e.Message));
return;
}
}
- statusService.StatusPublish(new StatusUpdateMessage("Offloc staging database cleared."));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage("Offloc staging database cleared."));
}
public async Task CreateOfflocProcessedFileEntry(string fileName, int fileId, string? archiveName = null)
@@ -380,7 +380,7 @@ public async Task CreateOfflocProcessedFileEntry(string fileName, int fileId, st
}
catch (SqlException e)
{
- statusService.StatusPublish(new StatusUpdateMessage(e.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(e.Message));
return;
}
}
@@ -409,7 +409,7 @@ public async Task CreateDeliusProcessedFileEntry(string fileName, string fileId)
}
catch (SqlException e)
{
- statusService.StatusPublish(new StatusUpdateMessage(e.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(e.Message));
return;
}
}
@@ -441,7 +441,7 @@ UPDATE [OfflocRunningPicture].[ProcessedFiles]
}
catch (SqlException e)
{
- statusService.StatusPublish(new StatusUpdateMessage(e.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(e.Message));
return;
}
}
@@ -479,7 +479,7 @@ WHERE Status <> 'Merged'
}
catch (SqlException e)
{
- statusService.StatusPublish(new StatusUpdateMessage(e.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(e.Message));
return false;
}
}
@@ -517,7 +517,7 @@ WHERE Status <> 'Merged'
}
catch (SqlException e)
{
- statusService.StatusPublish(new StatusUpdateMessage(e.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(e.Message));
return false;
}
}
@@ -549,7 +549,7 @@ FROM OfflocRunningPicture.ProcessedFiles
}
catch (SqlException e)
{
- statusService.StatusPublish(new StatusUpdateMessage(e.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(e.Message));
return null;
}
}
@@ -581,7 +581,7 @@ FROM DeliusRunningPicture.ProcessedFiles
}
catch (SqlException e)
{
- statusService.StatusPublish(new StatusUpdateMessage(e.Message));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage(e.Message));
return null;
}
}
diff --git a/src/Delius.Parser/Delius.Parser.csproj b/src/Delius.Parser/Delius.Parser.csproj
index ac890f7..8731d4e 100644
--- a/src/Delius.Parser/Delius.Parser.csproj
+++ b/src/Delius.Parser/Delius.Parser.csproj
@@ -22,8 +22,8 @@
-
-
+
+
diff --git a/src/Delius.Parser/DeliusParserBackgroundService.cs b/src/Delius.Parser/DeliusParserBackgroundService.cs
index 4db7687..e7ac374 100644
--- a/src/Delius.Parser/DeliusParserBackgroundService.cs
+++ b/src/Delius.Parser/DeliusParserBackgroundService.cs
@@ -21,7 +21,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await Task.Run(() =>
{
- messageService.StagingSubscribe(async (message) => await ParseFileAsync(message), TStagingQueue.DeliusParser);
+ messageService.StagingSubscribeAsync(async (message) => await ParseFileAsync(message), TStagingQueue.DeliusParser);
}, stoppingToken);
}
@@ -31,8 +31,8 @@ private async Task ParseFileAsync(DeliusDownloadFinishedMessage message)
if (await HasAlreadyBeenProcessedAsync(file))
{
- statusService.StatusPublish(new StatusUpdateMessage($"File {file} has already been processed"));
- messageService.StagingPublish(new DeliusParserFinishedMessage("File already processed", "No Path", true));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"File {file} has already been processed"));
+ await messageService.StagingPublishAsync(new DeliusParserFinishedMessage("File already processed", "No Path", true));
}
else
{
@@ -43,13 +43,13 @@ private async Task ParseFileAsync(DeliusDownloadFinishedMessage message)
private async Task BeginProcessing(string fileName, string fileId)
{
var request = new DeliusFileProcessingStarted(fileName, fileId);
- await dbService.SendDbRequestAndWaitForResponse(request);
+ await dbService.SendDbRequestAndWaitForResponseAsync(request);
await parseService.ParseFileAsync(fileName);
}
private async Task HasAlreadyBeenProcessedAsync(string file)
{
- var res = await dbService.SendDbRequestAndWaitForResponse(new GetDeliusFilesMessage());
+ var res = await dbService.SendDbRequestAndWaitForResponseAsync(new GetDeliusFilesMessage());
return res.fileNames.Contains(file);
}
}
\ No newline at end of file
diff --git a/src/Delius.Parser/Dockerfile b/src/Delius.Parser/Dockerfile
deleted file mode 100644
index 0d505bc..0000000
--- a/src/Delius.Parser/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
-
-FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
-WORKDIR /app
-
-FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
-WORKDIR /src
-COPY ["src/Delius.Parser/Delius.Parser.csproj", "src/Delius.Parser/"]
-COPY ["src/Messaging/Messaging.csproj", "src/Messaging/"]
-RUN dotnet restore "src/Delius.Parser/Delius.Parser.csproj"
-COPY . .
-WORKDIR "/src/src/Delius.Parser"
-RUN dotnet build "Delius.Parser.csproj" -c Release -o /app/build
-
-FROM build AS publish
-RUN dotnet publish "Delius.Parser.csproj" -c Release -o /app/publish /p:UseAppHost=false
-
-FROM base AS final
-WORKDIR /app
-COPY --from=publish /app/publish .
-ENTRYPOINT ["dotnet", "Delius.Parser.dll"]
\ No newline at end of file
diff --git a/src/Delius.Parser/Program.cs b/src/Delius.Parser/Program.cs
index 214dc40..332945b 100644
--- a/src/Delius.Parser/Program.cs
+++ b/src/Delius.Parser/Program.cs
@@ -27,9 +27,14 @@
builder.Services.ConfigureServices(builder.Configuration);
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
+ builder.Services.AddSingleton(sp =>
+ {
+ var rabbitContext = sp.GetRequiredService();
+ return RabbitService.CreateAsync(rabbitContext).GetAwaiter().GetResult();
+ });
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
builder.Services.AddSingleton();
diff --git a/src/Delius.Parser/Services/ParsingStrategyBase.cs b/src/Delius.Parser/Services/ParsingStrategyBase.cs
index afd0235..5303827 100644
--- a/src/Delius.Parser/Services/ParsingStrategyBase.cs
+++ b/src/Delius.Parser/Services/ParsingStrategyBase.cs
@@ -24,10 +24,10 @@ public ParsingStrategyBase(IFileProcessor fp, IStatusMessagingService statusServ
public async Task ProcessFile(string file)
{
- statusService.StatusPublish(new StatusUpdateMessage($"Delius parser started on file {file}."));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"Delius parser started on file {file}."));
await fileProcessor.Process(fileLocations.deliusInput + '/' + file, $"{fileLocations.deliusOutput}/{file.Split('.').First()}");
- stagingService.StagingPublish(new DeliusParserFinishedMessage(file, fileLocations.deliusInput + '/' + file.Split('.').First(), false));
+ await stagingService.StagingPublishAsync(new DeliusParserFinishedMessage(file, fileLocations.deliusInput + '/' + file.Split('.').First(), false));
}
}
diff --git a/src/FileSync/FileSync.csproj b/src/FileSync/FileSync.csproj
index 4741c84..951977c 100644
--- a/src/FileSync/FileSync.csproj
+++ b/src/FileSync/FileSync.csproj
@@ -14,8 +14,8 @@
-
-
+
+
diff --git a/src/FileSync/FileSyncBackgroundService.cs b/src/FileSync/FileSyncBackgroundService.cs
index c83541b..8488800 100644
--- a/src/FileSync/FileSyncBackgroundService.cs
+++ b/src/FileSync/FileSyncBackgroundService.cs
@@ -39,7 +39,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
if (syncOptions.Value.ProcessOnCompletion)
{
- matchingMessagingService.MatchingSubscribe(
+ matchingMessagingService.MatchingSubscribeAsync(
async msg =>
{
await ProcessMessageAsync(msg, stoppingToken);
@@ -153,8 +153,8 @@ async Task ProcessAsync(CancellationToken cancellationToken = default)
logger.LogInformation($"Targeting: Delius file ({unprocessedDeliusFile.Name}), Offloc file ({unprocessedOfflocFile.Name})");
- stagingMessagingService.StagingPublish(new DeliusDownloadFinishedMessage(unprocessedDeliusFile.Name, unprocessedDeliusFile.GetFileId()));
- stagingMessagingService.StagingPublish(new OfflocDownloadFinished(unprocessedOfflocFile.Name, unprocessedOfflocFile.GetFileId()!.Value, unprocessedOfflocFile.ParentArchiveName));
+ await stagingMessagingService.StagingPublishAsync(new DeliusDownloadFinishedMessage(unprocessedDeliusFile.Name, unprocessedDeliusFile.GetFileId()));
+ await stagingMessagingService.StagingPublishAsync(new OfflocDownloadFinished(unprocessedOfflocFile.Name, unprocessedOfflocFile.GetFileId()!.Value, unprocessedOfflocFile.ParentArchiveName));
}
finally
{
@@ -165,13 +165,13 @@ async Task ProcessAsync(CancellationToken cancellationToken = default)
private async Task IsOfflocReady()
{
- var response = await dbMessagingService.SendDbRequestAndWaitForResponse(new());
+ var response = await dbMessagingService.SendDbRequestAndWaitForResponseAsync(new());
return response.isReady;
}
private async Task IsDeliusReady()
{
- var response = await dbMessagingService.SendDbRequestAndWaitForResponse(new());
+ var response = await dbMessagingService.SendDbRequestAndWaitForResponseAsync(new());
return response.isReady;
}
@@ -184,7 +184,7 @@ private async Task IsDeliusReady()
// Get already processed files
logger.LogInformation("Retrieving processed Offloc files...");
- var response = await dbMessagingService.SendDbRequestAndWaitForResponse(new GetOfflocFilesMessage());
+ var response = await dbMessagingService.SendDbRequestAndWaitForResponseAsync(new GetOfflocFilesMessage());
logger.LogInformation($"Retrieved {response.offlocFiles.Length} processed Offloc file(s).");
// Find latest unprocessed file
@@ -234,7 +234,7 @@ private async Task IsDeliusReady()
{
// Associate the zip with the file name
logger.LogWarning("Already processed contents of archive: " + file);
- await dbMessagingService.SendDbRequestAndWaitForResponse(new AssociateOfflocFileWithArchiveMessage(file, Path.GetFileName(downloadedFile)));
+ await dbMessagingService.SendDbRequestAndWaitForResponseAsync(new AssociateOfflocFileWithArchiveMessage(file, Path.GetFileName(downloadedFile)));
// Remove the extracted file from the input directory - we have already processed it!
File.Delete(filePath);
@@ -252,7 +252,7 @@ private async Task IsDeliusReady()
// Get already processed files
logger.LogInformation("Retrieving processed Delius files...");
- var response = await dbMessagingService.SendDbRequestAndWaitForResponse(new GetDeliusFilesMessage());
+ var response = await dbMessagingService.SendDbRequestAndWaitForResponseAsync(new GetDeliusFilesMessage());
logger.LogInformation($"Retrieved {response.fileNames.Length} processed Delius file(s).");
// Return unprocessed files
@@ -280,12 +280,12 @@ private async Task IsDeliusReady()
private async Task PreKickoffTasks()
{
LogStatus("Publishing pre-kickoff messages...");
- stagingMessagingService.StagingPublish(new ClearHalfCleanedOfflocFiles());
- stagingMessagingService.StagingPublish(new ClearTemporaryDeliusFiles());
+ await stagingMessagingService.StagingPublishAsync(new ClearHalfCleanedOfflocFiles());
+ await stagingMessagingService.StagingPublishAsync(new ClearTemporaryDeliusFiles());
LogStatus("Pre-kickoff messages published. Beginning staging database tear down...");
- await dbMessagingService.SendDbRequestAndWaitForResponse(new ClearDeliusStaging());
- await dbMessagingService.SendDbRequestAndWaitForResponse(new ClearOfflocStaging());
+ await dbMessagingService.SendDbRequestAndWaitForResponseAsync(new ClearDeliusStaging());
+ await dbMessagingService.SendDbRequestAndWaitForResponseAsync(new ClearOfflocStaging());
LogStatus("Staging database tear down complete.");
// Delete any files in input directories
@@ -307,10 +307,10 @@ private async Task PreKickoffTasks()
LogStatus("Input directories cleared. Deleted " + counter + " file(s).");
}
- void LogStatus(string message)
+ async Task LogStatus(string message)
{
logger.LogInformation(message);
- statusMessagingService.StatusPublish(new StatusUpdateMessage(message));
+ await statusMessagingService.StatusPublishAsync(new StatusUpdateMessage(message));
}
public override void Dispose()
@@ -320,7 +320,7 @@ public override void Dispose()
public async Task IsDeliusFileNewerThanLastProcessed(DeliusFile unprocessedDeliusFile, CancellationToken cancellationToken = default)
{
- var lastProcessedDeliusFileName = await dbMessagingService.SendDbRequestAndWaitForResponse(new());
+ var lastProcessedDeliusFileName = await dbMessagingService.SendDbRequestAndWaitForResponseAsync(new());
if(!string.IsNullOrEmpty(lastProcessedDeliusFileName.fileName))
{
@@ -338,7 +338,7 @@ public async Task IsDeliusFileNewerThanLastProcessed(DeliusFile unprocesse
public async Task IsOfflocFileNewerThanLastProcessed(OfflocFile unprocessedOfflocFile, CancellationToken cancellationToken = default)
{
- var lastProcessedOfflocFileName = await dbMessagingService.SendDbRequestAndWaitForResponse(new());
+ var lastProcessedOfflocFileName = await dbMessagingService.SendDbRequestAndWaitForResponseAsync(new());
if(!string.IsNullOrEmpty(lastProcessedOfflocFileName.fileName))
{
diff --git a/src/FileSync/Program.cs b/src/FileSync/Program.cs
index 3421d50..8540cf8 100644
--- a/src/FileSync/Program.cs
+++ b/src/FileSync/Program.cs
@@ -12,10 +12,15 @@
builder.Services.ConfigureServices(builder.Configuration);
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
+ builder.Services.AddSingleton(sp =>
+ {
+ var rabbitContext = sp.GetRequiredService();
+ return RabbitService.CreateAsync(rabbitContext).GetAwaiter().GetResult();
+ });
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
builder.Services.AddOptions().BindConfiguration("SyncOptions");
diff --git a/src/Import/Dockerfile b/src/Import/Dockerfile
deleted file mode 100644
index a9ea6bf..0000000
--- a/src/Import/Dockerfile
+++ /dev/null
@@ -1,21 +0,0 @@
-#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
-
-FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
-WORKDIR /app
-
-FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
-WORKDIR /src
-COPY ["src/Import/Import.csproj", "src/Import/"]
-COPY ["src/Messaging/Messaging.csproj", "src/Messaging/"]
-RUN dotnet restore "src/Import/Import.csproj"
-COPY . .
-WORKDIR "/src/src/Import"
-RUN dotnet build "Import.csproj" -c Release -o /app/build
-
-FROM build AS publish
-RUN dotnet publish "Import.csproj" -c Release -o /app/publish /p:UseAppHost=false
-
-FROM base AS final
-WORKDIR /app
-COPY --from=publish /app/publish .
-ENTRYPOINT ["dotnet", "Import.dll"]
\ No newline at end of file
diff --git a/src/Import/Import.csproj b/src/Import/Import.csproj
index c6af87b..dfbab5e 100644
--- a/src/Import/Import.csproj
+++ b/src/Import/Import.csproj
@@ -15,8 +15,8 @@
-
-
+
+
diff --git a/src/Import/ImportBackgroundService.cs b/src/Import/ImportBackgroundService.cs
index 6af2a6c..407aa09 100644
--- a/src/Import/ImportBackgroundService.cs
+++ b/src/Import/ImportBackgroundService.cs
@@ -42,12 +42,12 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await Task.Run(() =>
{
- messageService.StagingSubscribe(async (message) =>
+ messageService.StagingSubscribeAsync(async (message) =>
{
await OnOfflocMessageReceived(message);
}, TStagingQueue.OfflocImport);
- messageService.StagingSubscribe(async (message) =>
+ messageService.StagingSubscribeAsync(async (message) =>
{
await OnDeliusMessageReceived(message);
}, TStagingQueue.DeliusImport);
@@ -62,13 +62,13 @@ private async Task OnDeliusMessageReceived(DeliusParserFinishedMessage message)
if (message.emptyFile)
{
deliusFileEmpty = true;
- statusService.StatusPublish(new StatusUpdateMessage($"No Delius File to import (staging or merging)"));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"No Delius File to import (staging or merging)"));
}
else
{
- statusService.StatusPublish(new StatusUpdateMessage($"Importing Delius File....."));
- var res = await dbService.SendDbRequestAndWaitForResponse(new StageDeliusMessage(message.fileName, message.filePath));
- var msg = await dbService.SendDbRequestAndWaitForResponse(new MergeDeliusRunningPictureMessage(message.fileName));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"Importing Delius File....."));
+ var res = await dbService.SendDbRequestAndWaitForResponseAsync(new StageDeliusMessage(message.fileName, message.filePath));
+ var msg = await dbService.SendDbRequestAndWaitForResponseAsync(new MergeDeliusRunningPictureMessage(message.fileName));
}
deliusSem.Release();
@@ -84,13 +84,13 @@ private async Task OnOfflocMessageReceived(OfflocParserFinishedMessage message)
if (message.emptyFile)
{
offlocFileEmpty = true;
- statusService.StatusPublish(new StatusUpdateMessage($"No Offloc File to import (staging or merging)"));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"No Offloc File to import (staging or merging)"));
}
else
{
- statusService.StatusPublish(new StatusUpdateMessage($"Importing Offloc File....."));
- var res = await dbService.SendDbRequestAndWaitForResponse(new StageOfflocMessage(message.filePath));
- var msg = await dbService.SendDbRequestAndWaitForResponse(new MergeOfflocRunningPictureMessage(Path.GetFileName(message.filePath)));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"Importing Offloc File....."));
+ var res = await dbService.SendDbRequestAndWaitForResponseAsync(new StageOfflocMessage(message.filePath));
+ var msg = await dbService.SendDbRequestAndWaitForResponseAsync(new MergeOfflocRunningPictureMessage(Path.GetFileName(message.filePath)));
}
offlocSem.Release();
offlocParserCompleted = true;
@@ -110,14 +110,14 @@ private async Task CheckStates()
if (filesEmpty.All(b => b == true))
{
- statusService.StatusPublish(new StatusUpdateMessage($"no Files imported"));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"no Files imported"));
}
else
{
//Clear staging Db after 10 minutes for testing purposes.
//await Task.Delay(new TimeSpan(0, 10, 0));
- statusService.StatusPublish(new StatusUpdateMessage($"Files imported"));
- importMessagingService.ImportPublish(new ImportFinishedMessage());
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"Files imported"));
+ await importMessagingService.ImportPublishAsync(new ImportFinishedMessage());
}
}
}
diff --git a/src/Import/Program.cs b/src/Import/Program.cs
index 4b43bae..9c98f74 100644
--- a/src/Import/Program.cs
+++ b/src/Import/Program.cs
@@ -21,10 +21,15 @@
builder.Configuration.ConfigureByEnvironment();
builder.Services.ConfigureServices(builder.Configuration);
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
+ builder.Services.AddSingleton(sp =>
+ {
+ var rabbitContext = sp.GetRequiredService();
+ return RabbitService.CreateAsync(rabbitContext).GetAwaiter().GetResult();
+ });
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
builder.Services.AddHostedService();
var app = builder.Build();
diff --git a/src/Kickoff/Kickoff.csproj b/src/Kickoff/Kickoff.csproj
deleted file mode 100644
index 387166f..0000000
--- a/src/Kickoff/Kickoff.csproj
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
- Exe
- enable
- enable
-
-
-
-
-
-
-
-
-
- Always
-
-
-
-
diff --git a/src/Kickoff/KickoffService.cs b/src/Kickoff/KickoffService.cs
deleted file mode 100644
index ee58156..0000000
--- a/src/Kickoff/KickoffService.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-using Messaging.Interfaces;
-using Messaging.Messages.DbMessages.Receiving;
-using Messaging.Messages.DbMessages.Sending;
-using Messaging.Messages.StagingMessages;
-using Messaging.Messages.StagingMessages.Delius;
-using Messaging.Messages.StagingMessages.Offloc;
-using Messaging.Messages.StatusMessages;
-using Microsoft.Extensions.Hosting;
-using Microsoft.Extensions.Options;
-using Serilog;
-
-namespace Kickoff;
-
-public class KickoffService(
- IStagingMessagingService messageService,
- IStatusMessagingService statusService,
- IDbMessagingService dbService,
- IHostApplicationLifetime lifetime) : IHostedService
-{
-
- public async Task StartAsync(CancellationToken cancellationToken)
- {
- LogStatus("Performing pre-kickoff tasks...");
-
- // await PreKickoffTasks();
-
- // LogStatus("All pre-kickoff tasks complete. Begin staging message publish...");
-
- // StagingMessage offlocStagingMessage = new OfflocDownloadFinished();
- // StagingMessage deliusStagingMessage = new DeliusDownloadFinishedMessage();
-
- // LogStatus($"Publishing {offlocStagingMessage.GetType().Name}...");
- // messageService.StagingPublish(offlocStagingMessage);
-
- // LogStatus($"Publishing {deliusStagingMessage.GetType().Name}...");
- // messageService.StagingPublish(deliusStagingMessage);
-
- lifetime.StopApplication();
- }
-
- public async Task StopAsync(CancellationToken cancellationToken)
- {
- await Task.Run(() =>
- {
- LogStatus("Kickoff complete.");
- }, cancellationToken);
- }
-
- private async Task PreKickoffTasks()
- {
- LogStatus("Publishing pre-kickoff messages...");
- messageService.StagingPublish(new ClearHalfCleanedOfflocFiles());
- messageService.StagingPublish(new ClearTemporaryDeliusFiles());
-
- LogStatus("Pre-kickoff messages published. Beginning staging database tear down...");
- await dbService.SendDbRequestAndWaitForResponse(new ClearDeliusStaging());
- await dbService.SendDbRequestAndWaitForResponse(new ClearOfflocStaging());
- LogStatus("Staging database tear down complete.");
- }
-
- void LogStatus(string message)
- {
- Log.Information(message);
- statusService.StatusPublish(new StatusUpdateMessage(message));
- }
-
-}
diff --git a/src/Kickoff/Program.cs b/src/Kickoff/Program.cs
deleted file mode 100644
index 1dd6554..0000000
--- a/src/Kickoff/Program.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-
-using EnvironmentSetup;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.Hosting;
-using Microsoft.Extensions.DependencyInjection;
-using Messaging.Interfaces;
-using Messaging.Services;
-using Kickoff;
-using Serilog;
-
-Log.Logger = new LoggerConfiguration()
- .Enrich.FromLogContext()
- .WriteTo.Console()
- .WriteTo.File(@".\logs\fatal.txt", Serilog.Events.LogEventLevel.Fatal)
- .CreateBootstrapLogger();
-
-try
-{
- var builder = Host.CreateApplicationBuilder(args);
-
- builder.Configuration.ConfigureByEnvironment();
-
- builder.Services.ConfigureServices(builder.Configuration);
-
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
-
- builder.Services.AddHostedService();
-
- var host = builder.Build();
-
- Log.Information("Starting application");
- await host.RunAsync();
-
- return 0;
-}
-catch (Exception ex)
-{
- Log.Fatal(ex, "Host terminated unexpectedly");
- return 1;
-}
-finally
-{
- Log.Information("Application stopping");
- await Log.CloseAndFlushAsync();
-}
\ No newline at end of file
diff --git a/src/Kickoff/Properties/launchSettings.json b/src/Kickoff/Properties/launchSettings.json
deleted file mode 100644
index 0d4ee3c..0000000
--- a/src/Kickoff/Properties/launchSettings.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "profiles": {
- "Kickoff": {
- "commandName": "Project",
- "environmentVariables": {
- "DOTNET_ENVIRONMENT": "Development"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/Kickoff/appsettings.json b/src/Kickoff/appsettings.json
deleted file mode 100644
index f2d0e23..0000000
--- a/src/Kickoff/appsettings.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "Serilog:WriteTo:1:Args:path": "%USERPROFILE%/DMS/logs/Kickoff-.txt",
- "EnvFilePath": "../",
- "KickoffConfig": {
- "RunOnce": false
- }
-}
\ No newline at end of file
diff --git a/src/EnvironmentSetup/ConfigureEnvironment.cs b/src/Libraries/EnvironmentSetup/ConfigureEnvironment.cs
similarity index 100%
rename from src/EnvironmentSetup/ConfigureEnvironment.cs
rename to src/Libraries/EnvironmentSetup/ConfigureEnvironment.cs
diff --git a/src/EnvironmentSetup/EnvironmentSetup.csproj b/src/Libraries/EnvironmentSetup/EnvironmentSetup.csproj
similarity index 100%
rename from src/EnvironmentSetup/EnvironmentSetup.csproj
rename to src/Libraries/EnvironmentSetup/EnvironmentSetup.csproj
diff --git a/src/EnvironmentSetup/FileLocations.cs b/src/Libraries/EnvironmentSetup/FileLocations.cs
similarity index 100%
rename from src/EnvironmentSetup/FileLocations.cs
rename to src/Libraries/EnvironmentSetup/FileLocations.cs
diff --git a/src/EnvironmentSetup/FilePatterns.cs b/src/Libraries/EnvironmentSetup/FilePatterns.cs
similarity index 100%
rename from src/EnvironmentSetup/FilePatterns.cs
rename to src/Libraries/EnvironmentSetup/FilePatterns.cs
diff --git a/src/EnvironmentSetup/RabbitHostingContextWrapper.cs b/src/Libraries/EnvironmentSetup/RabbitHostingContextWrapper.cs
similarity index 100%
rename from src/EnvironmentSetup/RabbitHostingContextWrapper.cs
rename to src/Libraries/EnvironmentSetup/RabbitHostingContextWrapper.cs
diff --git a/src/Infrastructure/Contexts/AuditContext.cs b/src/Libraries/Infrastructure/Contexts/AuditContext.cs
similarity index 100%
rename from src/Infrastructure/Contexts/AuditContext.cs
rename to src/Libraries/Infrastructure/Contexts/AuditContext.cs
diff --git a/src/Infrastructure/Contexts/ClusteringContext.cs b/src/Libraries/Infrastructure/Contexts/ClusteringContext.cs
similarity index 100%
rename from src/Infrastructure/Contexts/ClusteringContext.cs
rename to src/Libraries/Infrastructure/Contexts/ClusteringContext.cs
diff --git a/src/Infrastructure/Contexts/DeliusContext.cs b/src/Libraries/Infrastructure/Contexts/DeliusContext.cs
similarity index 100%
rename from src/Infrastructure/Contexts/DeliusContext.cs
rename to src/Libraries/Infrastructure/Contexts/DeliusContext.cs
diff --git a/src/Infrastructure/Contexts/OfflocContext.cs b/src/Libraries/Infrastructure/Contexts/OfflocContext.cs
similarity index 100%
rename from src/Infrastructure/Contexts/OfflocContext.cs
rename to src/Libraries/Infrastructure/Contexts/OfflocContext.cs
diff --git a/src/Infrastructure/DTOs/ClusterDto.cs b/src/Libraries/Infrastructure/DTOs/ClusterDto.cs
similarity index 100%
rename from src/Infrastructure/DTOs/ClusterDto.cs
rename to src/Libraries/Infrastructure/DTOs/ClusterDto.cs
diff --git a/src/Infrastructure/DTOs/EdgeDto.cs b/src/Libraries/Infrastructure/DTOs/EdgeDto.cs
similarity index 100%
rename from src/Infrastructure/DTOs/EdgeDto.cs
rename to src/Libraries/Infrastructure/DTOs/EdgeDto.cs
diff --git a/src/Infrastructure/DTOs/NetworkDto.cs b/src/Libraries/Infrastructure/DTOs/NetworkDto.cs
similarity index 100%
rename from src/Infrastructure/DTOs/NetworkDto.cs
rename to src/Libraries/Infrastructure/DTOs/NetworkDto.cs
diff --git a/src/Infrastructure/DTOs/NodeDto.cs b/src/Libraries/Infrastructure/DTOs/NodeDto.cs
similarity index 100%
rename from src/Infrastructure/DTOs/NodeDto.cs
rename to src/Libraries/Infrastructure/DTOs/NodeDto.cs
diff --git a/src/Infrastructure/DTOs/NodeMetadataDto.cs b/src/Libraries/Infrastructure/DTOs/NodeMetadataDto.cs
similarity index 100%
rename from src/Infrastructure/DTOs/NodeMetadataDto.cs
rename to src/Libraries/Infrastructure/DTOs/NodeMetadataDto.cs
diff --git a/src/Infrastructure/DatabaseExtensions.cs b/src/Libraries/Infrastructure/DatabaseExtensions.cs
similarity index 100%
rename from src/Infrastructure/DatabaseExtensions.cs
rename to src/Libraries/Infrastructure/DatabaseExtensions.cs
diff --git a/src/Infrastructure/Entities/Aggregation/ClusterAggregate.cs b/src/Libraries/Infrastructure/Entities/Aggregation/ClusterAggregate.cs
similarity index 100%
rename from src/Infrastructure/Entities/Aggregation/ClusterAggregate.cs
rename to src/Libraries/Infrastructure/Entities/Aggregation/ClusterAggregate.cs
diff --git a/src/Infrastructure/Entities/Audit/AuditEntry.cs b/src/Libraries/Infrastructure/Entities/Audit/AuditEntry.cs
similarity index 100%
rename from src/Infrastructure/Entities/Audit/AuditEntry.cs
rename to src/Libraries/Infrastructure/Entities/Audit/AuditEntry.cs
diff --git a/src/Infrastructure/Entities/Clustering/Cluster.cs b/src/Libraries/Infrastructure/Entities/Clustering/Cluster.cs
similarity index 100%
rename from src/Infrastructure/Entities/Clustering/Cluster.cs
rename to src/Libraries/Infrastructure/Entities/Clustering/Cluster.cs
diff --git a/src/Infrastructure/Entities/Clustering/ClusterAttribute.cs b/src/Libraries/Infrastructure/Entities/Clustering/ClusterAttribute.cs
similarity index 100%
rename from src/Infrastructure/Entities/Clustering/ClusterAttribute.cs
rename to src/Libraries/Infrastructure/Entities/Clustering/ClusterAttribute.cs
diff --git a/src/Infrastructure/Entities/Clustering/ClusterEdgeProbabilities.cs b/src/Libraries/Infrastructure/Entities/Clustering/ClusterEdgeProbabilities.cs
similarity index 100%
rename from src/Infrastructure/Entities/Clustering/ClusterEdgeProbabilities.cs
rename to src/Libraries/Infrastructure/Entities/Clustering/ClusterEdgeProbabilities.cs
diff --git a/src/Infrastructure/Entities/Clustering/ClusterMembership.cs b/src/Libraries/Infrastructure/Entities/Clustering/ClusterMembership.cs
similarity index 100%
rename from src/Infrastructure/Entities/Clustering/ClusterMembership.cs
rename to src/Libraries/Infrastructure/Entities/Clustering/ClusterMembership.cs
diff --git a/src/Infrastructure/Entities/Clustering/StickyLocation.cs b/src/Libraries/Infrastructure/Entities/Clustering/StickyLocation.cs
similarity index 100%
rename from src/Infrastructure/Entities/Clustering/StickyLocation.cs
rename to src/Libraries/Infrastructure/Entities/Clustering/StickyLocation.cs
diff --git a/src/Infrastructure/Entities/Clustering/UPCI2.cs b/src/Libraries/Infrastructure/Entities/Clustering/UPCI2.cs
similarity index 100%
rename from src/Infrastructure/Entities/Clustering/UPCI2.cs
rename to src/Libraries/Infrastructure/Entities/Clustering/UPCI2.cs
diff --git a/src/Infrastructure/Entities/Delius/AdditionalIdentifier.cs b/src/Libraries/Infrastructure/Entities/Delius/AdditionalIdentifier.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/AdditionalIdentifier.cs
rename to src/Libraries/Infrastructure/Entities/Delius/AdditionalIdentifier.cs
diff --git a/src/Infrastructure/Entities/Delius/AliasDetail.cs b/src/Libraries/Infrastructure/Entities/Delius/AliasDetail.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/AliasDetail.cs
rename to src/Libraries/Infrastructure/Entities/Delius/AliasDetail.cs
diff --git a/src/Infrastructure/Entities/Delius/Disability.cs b/src/Libraries/Infrastructure/Entities/Delius/Disability.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/Disability.cs
rename to src/Libraries/Infrastructure/Entities/Delius/Disability.cs
diff --git a/src/Infrastructure/Entities/Delius/Disposal.cs b/src/Libraries/Infrastructure/Entities/Delius/Disposal.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/Disposal.cs
rename to src/Libraries/Infrastructure/Entities/Delius/Disposal.cs
diff --git a/src/Infrastructure/Entities/Delius/EventDetail.cs b/src/Libraries/Infrastructure/Entities/Delius/EventDetail.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/EventDetail.cs
rename to src/Libraries/Infrastructure/Entities/Delius/EventDetail.cs
diff --git a/src/Infrastructure/Entities/Delius/MainOffence.cs b/src/Libraries/Infrastructure/Entities/Delius/MainOffence.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/MainOffence.cs
rename to src/Libraries/Infrastructure/Entities/Delius/MainOffence.cs
diff --git a/src/Infrastructure/Entities/Delius/Oa.cs b/src/Libraries/Infrastructure/Entities/Delius/Oa.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/Oa.cs
rename to src/Libraries/Infrastructure/Entities/Delius/Oa.cs
diff --git a/src/Infrastructure/Entities/Delius/Offender.cs b/src/Libraries/Infrastructure/Entities/Delius/Offender.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/Offender.cs
rename to src/Libraries/Infrastructure/Entities/Delius/Offender.cs
diff --git a/src/Infrastructure/Entities/Delius/OffenderAddress.cs b/src/Libraries/Infrastructure/Entities/Delius/OffenderAddress.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/OffenderAddress.cs
rename to src/Libraries/Infrastructure/Entities/Delius/OffenderAddress.cs
diff --git a/src/Infrastructure/Entities/Delius/OffenderManager.cs b/src/Libraries/Infrastructure/Entities/Delius/OffenderManager.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/OffenderManager.cs
rename to src/Libraries/Infrastructure/Entities/Delius/OffenderManager.cs
diff --git a/src/Infrastructure/Entities/Delius/OffenderManagerBuilding.cs b/src/Libraries/Infrastructure/Entities/Delius/OffenderManagerBuilding.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/OffenderManagerBuilding.cs
rename to src/Libraries/Infrastructure/Entities/Delius/OffenderManagerBuilding.cs
diff --git a/src/Infrastructure/Entities/Delius/OffenderManagerTeam.cs b/src/Libraries/Infrastructure/Entities/Delius/OffenderManagerTeam.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/OffenderManagerTeam.cs
rename to src/Libraries/Infrastructure/Entities/Delius/OffenderManagerTeam.cs
diff --git a/src/Infrastructure/Entities/Delius/OffenderToOffenderManagerMapping.cs b/src/Libraries/Infrastructure/Entities/Delius/OffenderToOffenderManagerMapping.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/OffenderToOffenderManagerMapping.cs
rename to src/Libraries/Infrastructure/Entities/Delius/OffenderToOffenderManagerMapping.cs
diff --git a/src/Infrastructure/Entities/Delius/OffenderTransfer.cs b/src/Libraries/Infrastructure/Entities/Delius/OffenderTransfer.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/OffenderTransfer.cs
rename to src/Libraries/Infrastructure/Entities/Delius/OffenderTransfer.cs
diff --git a/src/Infrastructure/Entities/Delius/PersonalCircumstance.cs b/src/Libraries/Infrastructure/Entities/Delius/PersonalCircumstance.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/PersonalCircumstance.cs
rename to src/Libraries/Infrastructure/Entities/Delius/PersonalCircumstance.cs
diff --git a/src/Infrastructure/Entities/Delius/ProcessedFile.cs b/src/Libraries/Infrastructure/Entities/Delius/ProcessedFile.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/ProcessedFile.cs
rename to src/Libraries/Infrastructure/Entities/Delius/ProcessedFile.cs
diff --git a/src/Infrastructure/Entities/Delius/Provision.cs b/src/Libraries/Infrastructure/Entities/Delius/Provision.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/Provision.cs
rename to src/Libraries/Infrastructure/Entities/Delius/Provision.cs
diff --git a/src/Infrastructure/Entities/Delius/RegistrationDetail.cs b/src/Libraries/Infrastructure/Entities/Delius/RegistrationDetail.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/RegistrationDetail.cs
rename to src/Libraries/Infrastructure/Entities/Delius/RegistrationDetail.cs
diff --git a/src/Infrastructure/Entities/Delius/Requirement.cs b/src/Libraries/Infrastructure/Entities/Delius/Requirement.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/Requirement.cs
rename to src/Libraries/Infrastructure/Entities/Delius/Requirement.cs
diff --git a/src/Infrastructure/Entities/Delius/StandardisationReference.cs b/src/Libraries/Infrastructure/Entities/Delius/StandardisationReference.cs
similarity index 100%
rename from src/Infrastructure/Entities/Delius/StandardisationReference.cs
rename to src/Libraries/Infrastructure/Entities/Delius/StandardisationReference.cs
diff --git a/src/Infrastructure/Entities/Offloc/Activity.cs b/src/Libraries/Infrastructure/Entities/Offloc/Activity.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/Activity.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/Activity.cs
diff --git a/src/Infrastructure/Entities/Offloc/Address.cs b/src/Libraries/Infrastructure/Entities/Offloc/Address.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/Address.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/Address.cs
diff --git a/src/Infrastructure/Entities/Offloc/Agency.cs b/src/Libraries/Infrastructure/Entities/Offloc/Agency.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/Agency.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/Agency.cs
diff --git a/src/Infrastructure/Entities/Offloc/Assessment.cs b/src/Libraries/Infrastructure/Entities/Offloc/Assessment.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/Assessment.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/Assessment.cs
diff --git a/src/Infrastructure/Entities/Offloc/Booking.cs b/src/Libraries/Infrastructure/Entities/Offloc/Booking.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/Booking.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/Booking.cs
diff --git a/src/Infrastructure/Entities/Offloc/Employment.cs b/src/Libraries/Infrastructure/Entities/Offloc/Employment.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/Employment.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/Employment.cs
diff --git a/src/Infrastructure/Entities/Offloc/Flag.cs b/src/Libraries/Infrastructure/Entities/Offloc/Flag.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/Flag.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/Flag.cs
diff --git a/src/Infrastructure/Entities/Offloc/Identifier.cs b/src/Libraries/Infrastructure/Entities/Offloc/Identifier.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/Identifier.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/Identifier.cs
diff --git a/src/Infrastructure/Entities/Offloc/IncentiveLevel.cs b/src/Libraries/Infrastructure/Entities/Offloc/IncentiveLevel.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/IncentiveLevel.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/IncentiveLevel.cs
diff --git a/src/Infrastructure/Entities/Offloc/Location.cs b/src/Libraries/Infrastructure/Entities/Offloc/Location.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/Location.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/Location.cs
diff --git a/src/Infrastructure/Entities/Offloc/MainOffence.cs b/src/Libraries/Infrastructure/Entities/Offloc/MainOffence.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/MainOffence.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/MainOffence.cs
diff --git a/src/Infrastructure/Entities/Offloc/Movement.cs b/src/Libraries/Infrastructure/Entities/Offloc/Movement.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/Movement.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/Movement.cs
diff --git a/src/Infrastructure/Entities/Offloc/OffenderAgency.cs b/src/Libraries/Infrastructure/Entities/Offloc/OffenderAgency.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/OffenderAgency.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/OffenderAgency.cs
diff --git a/src/Infrastructure/Entities/Offloc/OffenderStatus.cs b/src/Libraries/Infrastructure/Entities/Offloc/OffenderStatus.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/OffenderStatus.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/OffenderStatus.cs
diff --git a/src/Infrastructure/Entities/Offloc/OtherOffence.cs b/src/Libraries/Infrastructure/Entities/Offloc/OtherOffence.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/OtherOffence.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/OtherOffence.cs
diff --git a/src/Infrastructure/Entities/Offloc/PersonalDetail.cs b/src/Libraries/Infrastructure/Entities/Offloc/PersonalDetail.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/PersonalDetail.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/PersonalDetail.cs
diff --git a/src/Infrastructure/Entities/Offloc/Pnc.cs b/src/Libraries/Infrastructure/Entities/Offloc/Pnc.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/Pnc.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/Pnc.cs
diff --git a/src/Infrastructure/Entities/Offloc/PreviousPrisonNumber.cs b/src/Libraries/Infrastructure/Entities/Offloc/PreviousPrisonNumber.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/PreviousPrisonNumber.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/PreviousPrisonNumber.cs
diff --git a/src/Infrastructure/Entities/Offloc/ProcessedFile.cs b/src/Libraries/Infrastructure/Entities/Offloc/ProcessedFile.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/ProcessedFile.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/ProcessedFile.cs
diff --git a/src/Infrastructure/Entities/Offloc/SentenceInformation.cs b/src/Libraries/Infrastructure/Entities/Offloc/SentenceInformation.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/SentenceInformation.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/SentenceInformation.cs
diff --git a/src/Infrastructure/Entities/Offloc/SexOffender.cs b/src/Libraries/Infrastructure/Entities/Offloc/SexOffender.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/SexOffender.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/SexOffender.cs
diff --git a/src/Infrastructure/Entities/Offloc/StandardisationReference.cs b/src/Libraries/Infrastructure/Entities/Offloc/StandardisationReference.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/StandardisationReference.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/StandardisationReference.cs
diff --git a/src/Infrastructure/Entities/Offloc/VeteranFlagLog.cs b/src/Libraries/Infrastructure/Entities/Offloc/VeteranFlagLog.cs
similarity index 100%
rename from src/Infrastructure/Entities/Offloc/VeteranFlagLog.cs
rename to src/Libraries/Infrastructure/Entities/Offloc/VeteranFlagLog.cs
diff --git a/src/Infrastructure/Entities/SentenceInformation/SentenceInformationFull.cs b/src/Libraries/Infrastructure/Entities/SentenceInformation/SentenceInformationFull.cs
similarity index 100%
rename from src/Infrastructure/Entities/SentenceInformation/SentenceInformationFull.cs
rename to src/Libraries/Infrastructure/Entities/SentenceInformation/SentenceInformationFull.cs
diff --git a/src/Infrastructure/Extensions/AggregateExtensions.cs b/src/Libraries/Infrastructure/Extensions/AggregateExtensions.cs
similarity index 100%
rename from src/Infrastructure/Extensions/AggregateExtensions.cs
rename to src/Libraries/Infrastructure/Extensions/AggregateExtensions.cs
diff --git a/src/Infrastructure/GlobalUsings.cs b/src/Libraries/Infrastructure/GlobalUsings.cs
similarity index 100%
rename from src/Infrastructure/GlobalUsings.cs
rename to src/Libraries/Infrastructure/GlobalUsings.cs
diff --git a/src/Infrastructure/Infrastructure.csproj b/src/Libraries/Infrastructure/Infrastructure.csproj
similarity index 100%
rename from src/Infrastructure/Infrastructure.csproj
rename to src/Libraries/Infrastructure/Infrastructure.csproj
diff --git a/src/Infrastructure/Middlewares/AuditSaveChangesInterceptor.cs b/src/Libraries/Infrastructure/Middlewares/AuditSaveChangesInterceptor.cs
similarity index 100%
rename from src/Infrastructure/Middlewares/AuditSaveChangesInterceptor.cs
rename to src/Libraries/Infrastructure/Middlewares/AuditSaveChangesInterceptor.cs
diff --git a/src/Infrastructure/Middlewares/ICurrentUserService.cs b/src/Libraries/Infrastructure/Middlewares/ICurrentUserService.cs
similarity index 100%
rename from src/Infrastructure/Middlewares/ICurrentUserService.cs
rename to src/Libraries/Infrastructure/Middlewares/ICurrentUserService.cs
diff --git a/src/Infrastructure/Repositories/Clustering/ClusteringRepository.cs b/src/Libraries/Infrastructure/Repositories/Clustering/ClusteringRepository.cs
similarity index 100%
rename from src/Infrastructure/Repositories/Clustering/ClusteringRepository.cs
rename to src/Libraries/Infrastructure/Repositories/Clustering/ClusteringRepository.cs
diff --git a/src/Infrastructure/Repositories/Clustering/IClusteringRepository.cs b/src/Libraries/Infrastructure/Repositories/Clustering/IClusteringRepository.cs
similarity index 100%
rename from src/Infrastructure/Repositories/Clustering/IClusteringRepository.cs
rename to src/Libraries/Infrastructure/Repositories/Clustering/IClusteringRepository.cs
diff --git a/src/Infrastructure/Repositories/Delius/DeliusRepository.cs b/src/Libraries/Infrastructure/Repositories/Delius/DeliusRepository.cs
similarity index 100%
rename from src/Infrastructure/Repositories/Delius/DeliusRepository.cs
rename to src/Libraries/Infrastructure/Repositories/Delius/DeliusRepository.cs
diff --git a/src/Infrastructure/Repositories/Delius/IDeliusRepository.cs b/src/Libraries/Infrastructure/Repositories/Delius/IDeliusRepository.cs
similarity index 100%
rename from src/Infrastructure/Repositories/Delius/IDeliusRepository.cs
rename to src/Libraries/Infrastructure/Repositories/Delius/IDeliusRepository.cs
diff --git a/src/Infrastructure/Repositories/Offloc/IOfflocRepository.cs b/src/Libraries/Infrastructure/Repositories/Offloc/IOfflocRepository.cs
similarity index 100%
rename from src/Infrastructure/Repositories/Offloc/IOfflocRepository.cs
rename to src/Libraries/Infrastructure/Repositories/Offloc/IOfflocRepository.cs
diff --git a/src/Infrastructure/Repositories/Offloc/OfflocRepository.cs b/src/Libraries/Infrastructure/Repositories/Offloc/OfflocRepository.cs
similarity index 100%
rename from src/Infrastructure/Repositories/Offloc/OfflocRepository.cs
rename to src/Libraries/Infrastructure/Repositories/Offloc/OfflocRepository.cs
diff --git a/src/Infrastructure/Repositories/Visualisation/IVisualisationRepository.cs b/src/Libraries/Infrastructure/Repositories/Visualisation/IVisualisationRepository.cs
similarity index 100%
rename from src/Infrastructure/Repositories/Visualisation/IVisualisationRepository.cs
rename to src/Libraries/Infrastructure/Repositories/Visualisation/IVisualisationRepository.cs
diff --git a/src/Infrastructure/Repositories/Visualisation/VisualisationRepository.cs b/src/Libraries/Infrastructure/Repositories/Visualisation/VisualisationRepository.cs
similarity index 100%
rename from src/Infrastructure/Repositories/Visualisation/VisualisationRepository.cs
rename to src/Libraries/Infrastructure/Repositories/Visualisation/VisualisationRepository.cs
diff --git a/src/Infrastructure/Services/Aggregation/AggregateService.cs b/src/Libraries/Infrastructure/Services/Aggregation/AggregateService.cs
similarity index 100%
rename from src/Infrastructure/Services/Aggregation/AggregateService.cs
rename to src/Libraries/Infrastructure/Services/Aggregation/AggregateService.cs
diff --git a/src/Matching.Core/Attributes/MatcherAttribute.cs b/src/Libraries/Matching.Core/Attributes/MatcherAttribute.cs
similarity index 100%
rename from src/Matching.Core/Attributes/MatcherAttribute.cs
rename to src/Libraries/Matching.Core/Attributes/MatcherAttribute.cs
diff --git a/src/Matching.Core/IMatcher.cs b/src/Libraries/Matching.Core/IMatcher.cs
similarity index 100%
rename from src/Matching.Core/IMatcher.cs
rename to src/Libraries/Matching.Core/IMatcher.cs
diff --git a/src/Matching.Core/IMatcherOptions.cs b/src/Libraries/Matching.Core/IMatcherOptions.cs
similarity index 100%
rename from src/Matching.Core/IMatcherOptions.cs
rename to src/Libraries/Matching.Core/IMatcherOptions.cs
diff --git a/src/Matching.Core/Matcher.cs b/src/Libraries/Matching.Core/Matcher.cs
similarity index 100%
rename from src/Matching.Core/Matcher.cs
rename to src/Libraries/Matching.Core/Matcher.cs
diff --git a/src/Matching.Core/MatcherResult.cs b/src/Libraries/Matching.Core/MatcherResult.cs
similarity index 100%
rename from src/Matching.Core/MatcherResult.cs
rename to src/Libraries/Matching.Core/MatcherResult.cs
diff --git a/src/Matching.Core/Matchers/CaverMatcher.cs b/src/Libraries/Matching.Core/Matchers/CaverMatcher.cs
similarity index 100%
rename from src/Matching.Core/Matchers/CaverMatcher.cs
rename to src/Libraries/Matching.Core/Matchers/CaverMatcher.cs
diff --git a/src/Matching.Core/Matchers/DateMatcher.cs b/src/Libraries/Matching.Core/Matchers/DateMatcher.cs
similarity index 100%
rename from src/Matching.Core/Matchers/DateMatcher.cs
rename to src/Libraries/Matching.Core/Matchers/DateMatcher.cs
diff --git a/src/Matching.Core/Matchers/EqualityMatcher.cs b/src/Libraries/Matching.Core/Matchers/EqualityMatcher.cs
similarity index 100%
rename from src/Matching.Core/Matchers/EqualityMatcher.cs
rename to src/Libraries/Matching.Core/Matchers/EqualityMatcher.cs
diff --git a/src/Matching.Core/Matchers/JaroWinklerMatcher.cs b/src/Libraries/Matching.Core/Matchers/JaroWinklerMatcher.cs
similarity index 100%
rename from src/Matching.Core/Matchers/JaroWinklerMatcher.cs
rename to src/Libraries/Matching.Core/Matchers/JaroWinklerMatcher.cs
diff --git a/src/Matching.Core/Matchers/LevenshteinMatcher.cs b/src/Libraries/Matching.Core/Matchers/LevenshteinMatcher.cs
similarity index 100%
rename from src/Matching.Core/Matchers/LevenshteinMatcher.cs
rename to src/Libraries/Matching.Core/Matchers/LevenshteinMatcher.cs
diff --git a/src/Matching.Core/Matchers/Options/LevenshteinStringMatcherOptions.cs b/src/Libraries/Matching.Core/Matchers/Options/LevenshteinStringMatcherOptions.cs
similarity index 100%
rename from src/Matching.Core/Matchers/Options/LevenshteinStringMatcherOptions.cs
rename to src/Libraries/Matching.Core/Matchers/Options/LevenshteinStringMatcherOptions.cs
diff --git a/src/Matching.Core/Matchers/PostcodeMatcher.cs b/src/Libraries/Matching.Core/Matchers/PostcodeMatcher.cs
similarity index 100%
rename from src/Matching.Core/Matchers/PostcodeMatcher.cs
rename to src/Libraries/Matching.Core/Matchers/PostcodeMatcher.cs
diff --git a/src/Matching.Core/Matchers/Results/CaverMatcherResult.cs b/src/Libraries/Matching.Core/Matchers/Results/CaverMatcherResult.cs
similarity index 100%
rename from src/Matching.Core/Matchers/Results/CaverMatcherResult.cs
rename to src/Libraries/Matching.Core/Matchers/Results/CaverMatcherResult.cs
diff --git a/src/Matching.Core/Matchers/Results/DateMatcherResult.cs b/src/Libraries/Matching.Core/Matchers/Results/DateMatcherResult.cs
similarity index 100%
rename from src/Matching.Core/Matchers/Results/DateMatcherResult.cs
rename to src/Libraries/Matching.Core/Matchers/Results/DateMatcherResult.cs
diff --git a/src/Matching.Core/Matchers/Results/EqualityMatcherResult.cs b/src/Libraries/Matching.Core/Matchers/Results/EqualityMatcherResult.cs
similarity index 100%
rename from src/Matching.Core/Matchers/Results/EqualityMatcherResult.cs
rename to src/Libraries/Matching.Core/Matchers/Results/EqualityMatcherResult.cs
diff --git a/src/Matching.Core/Matchers/Results/JaroWinklerMatcherResult.cs b/src/Libraries/Matching.Core/Matchers/Results/JaroWinklerMatcherResult.cs
similarity index 100%
rename from src/Matching.Core/Matchers/Results/JaroWinklerMatcherResult.cs
rename to src/Libraries/Matching.Core/Matchers/Results/JaroWinklerMatcherResult.cs
diff --git a/src/Matching.Core/Matchers/Results/LevenshteinMatcherResult.cs b/src/Libraries/Matching.Core/Matchers/Results/LevenshteinMatcherResult.cs
similarity index 100%
rename from src/Matching.Core/Matchers/Results/LevenshteinMatcherResult.cs
rename to src/Libraries/Matching.Core/Matchers/Results/LevenshteinMatcherResult.cs
diff --git a/src/Matching.Core/Matchers/Results/PostcodeMatcherResult.cs b/src/Libraries/Matching.Core/Matchers/Results/PostcodeMatcherResult.cs
similarity index 100%
rename from src/Matching.Core/Matchers/Results/PostcodeMatcherResult.cs
rename to src/Libraries/Matching.Core/Matchers/Results/PostcodeMatcherResult.cs
diff --git a/src/Matching.Core/Matching.Core.csproj b/src/Libraries/Matching.Core/Matching.Core.csproj
similarity index 100%
rename from src/Matching.Core/Matching.Core.csproj
rename to src/Libraries/Matching.Core/Matching.Core.csproj
diff --git a/src/Matching.Core/README.md b/src/Libraries/Matching.Core/README.md
similarity index 100%
rename from src/Matching.Core/README.md
rename to src/Libraries/Matching.Core/README.md
diff --git a/src/Matching.Core/Search/Precedence.cs b/src/Libraries/Matching.Core/Search/Precedence.cs
similarity index 100%
rename from src/Matching.Core/Search/Precedence.cs
rename to src/Libraries/Matching.Core/Search/Precedence.cs
diff --git a/src/Matching.Core/Utils/CaverUtils.cs b/src/Libraries/Matching.Core/Utils/CaverUtils.cs
similarity index 100%
rename from src/Matching.Core/Utils/CaverUtils.cs
rename to src/Libraries/Matching.Core/Utils/CaverUtils.cs
diff --git a/src/Matching.Core/Utils/DateUtils.cs b/src/Libraries/Matching.Core/Utils/DateUtils.cs
similarity index 100%
rename from src/Matching.Core/Utils/DateUtils.cs
rename to src/Libraries/Matching.Core/Utils/DateUtils.cs
diff --git a/src/Matching.Core/Utils/JaroWinklerUtils.cs b/src/Libraries/Matching.Core/Utils/JaroWinklerUtils.cs
similarity index 100%
rename from src/Matching.Core/Utils/JaroWinklerUtils.cs
rename to src/Libraries/Matching.Core/Utils/JaroWinklerUtils.cs
diff --git a/src/Matching.Core/Utils/LevenshteinUtils.cs b/src/Libraries/Matching.Core/Utils/LevenshteinUtils.cs
similarity index 100%
rename from src/Matching.Core/Utils/LevenshteinUtils.cs
rename to src/Libraries/Matching.Core/Utils/LevenshteinUtils.cs
diff --git a/src/Matching.Core/Utils/StringUtils.cs b/src/Libraries/Matching.Core/Utils/StringUtils.cs
similarity index 100%
rename from src/Matching.Core/Utils/StringUtils.cs
rename to src/Libraries/Matching.Core/Utils/StringUtils.cs
diff --git a/src/Messaging/Exchanges.cs b/src/Libraries/Messaging/Exchanges.cs
similarity index 100%
rename from src/Messaging/Exchanges.cs
rename to src/Libraries/Messaging/Exchanges.cs
diff --git a/src/Libraries/Messaging/Interfaces/IBlockingMessagingService.cs b/src/Libraries/Messaging/Interfaces/IBlockingMessagingService.cs
new file mode 100644
index 0000000..d101734
--- /dev/null
+++ b/src/Libraries/Messaging/Interfaces/IBlockingMessagingService.cs
@@ -0,0 +1,11 @@
+using Messaging.Messages.BlockingMessages;
+using Messaging.Queues;
+
+namespace Messaging.Interfaces
+{
+ public interface IBlockingMessagingService
+ {
+ Task BlockingPublishAsync(T message) where T : BlockingMessage;
+ Task BlockingSubscribeAsync(Action handler, TBlockingQueue queue) where T : BlockingMessage;
+ }
+}
\ No newline at end of file
diff --git a/src/Libraries/Messaging/Interfaces/IDbMessagingService.cs b/src/Libraries/Messaging/Interfaces/IDbMessagingService.cs
new file mode 100644
index 0000000..4116bd4
--- /dev/null
+++ b/src/Libraries/Messaging/Interfaces/IDbMessagingService.cs
@@ -0,0 +1,12 @@
+using Messaging.Messages.DbMessages.Receiving;
+using Messaging.Messages.DbMessages.Sending;
+using Messaging.Queues;
+
+namespace Messaging.Interfaces;
+
+public interface IDbMessagingService
+{
+ Task DbPublishResponseAsync(T message) where T : DbResponseMessage;
+ Task SubscribeToDbRequestAsync(Action handler, TDbQueue queue) where T : DbRequestMessage;
+ Task SendDbRequestAndWaitForResponseAsync(T message) where T : DbRequestMessage where T2 : DbResponseMessage;
+}
diff --git a/src/Libraries/Messaging/Interfaces/IImportMessagingService.cs b/src/Libraries/Messaging/Interfaces/IImportMessagingService.cs
new file mode 100644
index 0000000..27f15d0
--- /dev/null
+++ b/src/Libraries/Messaging/Interfaces/IImportMessagingService.cs
@@ -0,0 +1,11 @@
+using Messaging.Messages.ImportMessages;
+using Messaging.Queues;
+
+namespace Messaging.Interfaces
+{
+ public interface IImportMessagingService
+ {
+ Task ImportPublishAsync(T message) where T : ImportMessage;
+ Task ImportSubscribeAsync(Action handler, TImportQueue queue) where T : ImportMessage;
+ }
+}
\ No newline at end of file
diff --git a/src/Libraries/Messaging/Interfaces/IMatchingMessagingService.cs b/src/Libraries/Messaging/Interfaces/IMatchingMessagingService.cs
new file mode 100644
index 0000000..3da1c9a
--- /dev/null
+++ b/src/Libraries/Messaging/Interfaces/IMatchingMessagingService.cs
@@ -0,0 +1,11 @@
+using Messaging.Messages.MatchingMessages;
+using Messaging.Queues;
+
+namespace Messaging.Interfaces
+{
+ public interface IMatchingMessagingService
+ {
+ Task MatchingPublishAsync(T message) where T : MatchingMessage;
+ Task MatchingSubscribeAsync(Action handler, TMatchingQueue queue) where T : MatchingMessage;
+ }
+}
diff --git a/src/Libraries/Messaging/Interfaces/IMergingMessagingService.cs b/src/Libraries/Messaging/Interfaces/IMergingMessagingService.cs
new file mode 100644
index 0000000..de24319
--- /dev/null
+++ b/src/Libraries/Messaging/Interfaces/IMergingMessagingService.cs
@@ -0,0 +1,11 @@
+
+using Messaging.Messages.MergingMessages;
+using Messaging.Queues;
+
+namespace Messaging.Interfaces;
+
+public interface IMergingMessagingService
+{
+ Task MergingPublishAsync(T message) where T : MergingMessage;
+ Task MergingSubscribeAsync(Action handler, TMergingQueue queue) where T : MergingMessage;
+}
diff --git a/src/Messaging/Interfaces/IMessageService.cs b/src/Libraries/Messaging/Interfaces/IMessageService.cs
similarity index 100%
rename from src/Messaging/Interfaces/IMessageService.cs
rename to src/Libraries/Messaging/Interfaces/IMessageService.cs
diff --git a/src/Libraries/Messaging/Interfaces/IStagingMessagingService.cs b/src/Libraries/Messaging/Interfaces/IStagingMessagingService.cs
new file mode 100644
index 0000000..bf6c29c
--- /dev/null
+++ b/src/Libraries/Messaging/Interfaces/IStagingMessagingService.cs
@@ -0,0 +1,11 @@
+
+using Messaging.Messages.StagingMessages;
+using Messaging.Queues;
+
+namespace Messaging.Interfaces;
+
+public interface IStagingMessagingService
+{
+ Task StagingPublishAsync(T message) where T : StagingMessage;
+ Task StagingSubscribeAsync(Action handler, TStagingQueue queue) where T : StagingMessage;
+}
diff --git a/src/Libraries/Messaging/Interfaces/IStatusMessagingService.cs b/src/Libraries/Messaging/Interfaces/IStatusMessagingService.cs
new file mode 100644
index 0000000..0de901e
--- /dev/null
+++ b/src/Libraries/Messaging/Interfaces/IStatusMessagingService.cs
@@ -0,0 +1,11 @@
+
+using Messaging.Messages.StatusMessages;
+using Messaging.Queues;
+
+namespace Messaging.Interfaces;
+
+public interface IStatusMessagingService
+{
+ Task StatusPublishAsync(T Message) where T : StatusUpdateMessage;
+ Task StatusSubscribeAsync(Action handler, TStatusQueue queue) where T : StatusUpdateMessage;
+}
diff --git a/src/Messaging/Messages/BlockingMessages/BlockingFinishedMessage.cs b/src/Libraries/Messaging/Messages/BlockingMessages/BlockingFinishedMessage.cs
similarity index 100%
rename from src/Messaging/Messages/BlockingMessages/BlockingFinishedMessage.cs
rename to src/Libraries/Messaging/Messages/BlockingMessages/BlockingFinishedMessage.cs
diff --git a/src/Messaging/Messages/BlockingMessages/BlockingMessage.cs b/src/Libraries/Messaging/Messages/BlockingMessages/BlockingMessage.cs
similarity index 100%
rename from src/Messaging/Messages/BlockingMessages/BlockingMessage.cs
rename to src/Libraries/Messaging/Messages/BlockingMessages/BlockingMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/DbMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/DbMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/DbMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/DbMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/OfflocFileIdReturnMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/OfflocFileIdReturnMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/OfflocFileIdReturnMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/OfflocFileIdReturnMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/DbResponseMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/DbResponseMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/DbResponseMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/DbResponseMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/DeliusFilesReturnMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/DeliusFilesReturnMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/DeliusFilesReturnMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/DeliusFilesReturnMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/IsDeliusReadyForProcessingReturnMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/IsDeliusReadyForProcessingReturnMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/IsDeliusReadyForProcessingReturnMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/IsDeliusReadyForProcessingReturnMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/IsOfflocReadyForProcessingReturnMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/IsOfflocReadyForProcessingReturnMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/IsOfflocReadyForProcessingReturnMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/IsOfflocReadyForProcessingReturnMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/MergeDeliusReturnMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/MergeDeliusReturnMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/MergeDeliusReturnMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/MergeDeliusReturnMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/MergeOfflocReturnMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/MergeOfflocReturnMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/MergeOfflocReturnMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/MergeOfflocReturnMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/OfflocFilesReturnMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/OfflocFilesReturnMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/OfflocFilesReturnMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/OfflocFilesReturnMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/ResultAssociateOfflocFileWithArchiveMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultAssociateOfflocFileWithArchiveMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/ResultAssociateOfflocFileWithArchiveMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultAssociateOfflocFileWithArchiveMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/ResultClearDeliusStaging.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultClearDeliusStaging.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/ResultClearDeliusStaging.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultClearDeliusStaging.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/ResultClearOfflocStaging.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultClearOfflocStaging.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/ResultClearOfflocStaging.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultClearOfflocStaging.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/ResultDeliusFileProcessingStarted.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultDeliusFileProcessingStarted.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/ResultDeliusFileProcessingStarted.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultDeliusFileProcessingStarted.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/ResultDeliusGetLastFullMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultDeliusGetLastFullMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/ResultDeliusGetLastFullMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultDeliusGetLastFullMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/ResultGetLastProcessedDeliusFileMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultGetLastProcessedDeliusFileMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/ResultGetLastProcessedDeliusFileMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultGetLastProcessedDeliusFileMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/ResultGetLastProcessedOfflocFileMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultGetLastProcessedOfflocFileMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/ResultGetLastProcessedOfflocFileMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultGetLastProcessedOfflocFileMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/ResultOfflocFileProcessingStarted.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultOfflocFileProcessingStarted.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/ResultOfflocFileProcessingStarted.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultOfflocFileProcessingStarted.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/ResultStandardiseDeliusStaging.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultStandardiseDeliusStaging.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/ResultStandardiseDeliusStaging.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/ResultStandardiseDeliusStaging.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/StageDeliusReturnMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/StageDeliusReturnMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/StageDeliusReturnMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/StageDeliusReturnMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Receiving/StageOfflocReturnMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Receiving/StageOfflocReturnMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Receiving/StageOfflocReturnMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Receiving/StageOfflocReturnMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/AssociateOfflocFileWithArchiveMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/AssociateOfflocFileWithArchiveMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/AssociateOfflocFileWithArchiveMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/AssociateOfflocFileWithArchiveMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/ClearDeliusStaging.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/ClearDeliusStaging.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/ClearDeliusStaging.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/ClearDeliusStaging.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/ClearOfflocStaging.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/ClearOfflocStaging.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/ClearOfflocStaging.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/ClearOfflocStaging.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/DbRequestMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/DbRequestMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/DbRequestMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/DbRequestMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/DeliusFileProcessingStarted.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/DeliusFileProcessingStarted.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/DeliusFileProcessingStarted.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/DeliusFileProcessingStarted.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/DeliusGetLastFullMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/DeliusGetLastFullMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/DeliusGetLastFullMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/DeliusGetLastFullMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/GetDeliusFilesMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/GetDeliusFilesMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/GetDeliusFilesMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/GetDeliusFilesMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/GetLastProcessedDeliusFile.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/GetLastProcessedDeliusFile.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/GetLastProcessedDeliusFile.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/GetLastProcessedDeliusFile.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/GetLastProcessedOfflocFile.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/GetLastProcessedOfflocFile.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/GetLastProcessedOfflocFile.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/GetLastProcessedOfflocFile.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/GetOfflocFileDatesMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/GetOfflocFileDatesMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/GetOfflocFileDatesMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/GetOfflocFileDatesMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/GetOfflocFilesMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/GetOfflocFilesMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/GetOfflocFilesMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/GetOfflocFilesMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/IsDeliusReadyForProcessingMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/IsDeliusReadyForProcessingMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/IsDeliusReadyForProcessingMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/IsDeliusReadyForProcessingMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/IsOfflocReadyForProcessingMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/IsOfflocReadyForProcessingMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/IsOfflocReadyForProcessingMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/IsOfflocReadyForProcessingMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/MergeDeliusRunningPictureMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/MergeDeliusRunningPictureMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/MergeDeliusRunningPictureMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/MergeDeliusRunningPictureMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/MergeOfflocRunningPictureMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/MergeOfflocRunningPictureMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/MergeOfflocRunningPictureMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/MergeOfflocRunningPictureMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/OfflocFileProcessingStarted.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/OfflocFileProcessingStarted.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/OfflocFileProcessingStarted.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/OfflocFileProcessingStarted.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/StageDeliusMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/StageDeliusMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/StageDeliusMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/StageDeliusMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/StageOfflocMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/StageOfflocMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/StageOfflocMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/StageOfflocMessage.cs
diff --git a/src/Messaging/Messages/DbMessages/Sending/StandardiseDeliusMessage.cs b/src/Libraries/Messaging/Messages/DbMessages/Sending/StandardiseDeliusMessage.cs
similarity index 100%
rename from src/Messaging/Messages/DbMessages/Sending/StandardiseDeliusMessage.cs
rename to src/Libraries/Messaging/Messages/DbMessages/Sending/StandardiseDeliusMessage.cs
diff --git a/src/Messaging/Messages/ImportMessages/ImportFinishedMessage.cs b/src/Libraries/Messaging/Messages/ImportMessages/ImportFinishedMessage.cs
similarity index 100%
rename from src/Messaging/Messages/ImportMessages/ImportFinishedMessage.cs
rename to src/Libraries/Messaging/Messages/ImportMessages/ImportFinishedMessage.cs
diff --git a/src/Messaging/Messages/ImportMessages/ImportMessage.cs b/src/Libraries/Messaging/Messages/ImportMessages/ImportMessage.cs
similarity index 100%
rename from src/Messaging/Messages/ImportMessages/ImportMessage.cs
rename to src/Libraries/Messaging/Messages/ImportMessages/ImportMessage.cs
diff --git a/src/Messaging/Messages/MatchingMessages/Clustering/ClusteringPostProcessingFinishedMessage.cs b/src/Libraries/Messaging/Messages/MatchingMessages/Clustering/ClusteringPostProcessingFinishedMessage.cs
similarity index 100%
rename from src/Messaging/Messages/MatchingMessages/Clustering/ClusteringPostProcessingFinishedMessage.cs
rename to src/Libraries/Messaging/Messages/MatchingMessages/Clustering/ClusteringPostProcessingFinishedMessage.cs
diff --git a/src/Messaging/Messages/MatchingMessages/Clustering/ClusteringPreProcessingFinishedMessage.cs b/src/Libraries/Messaging/Messages/MatchingMessages/Clustering/ClusteringPreProcessingFinishedMessage.cs
similarity index 100%
rename from src/Messaging/Messages/MatchingMessages/Clustering/ClusteringPreProcessingFinishedMessage.cs
rename to src/Libraries/Messaging/Messages/MatchingMessages/Clustering/ClusteringPreProcessingFinishedMessage.cs
diff --git a/src/Messaging/Messages/MatchingMessages/Clustering/ClusteringPreProcessingStartedMessage.cs b/src/Libraries/Messaging/Messages/MatchingMessages/Clustering/ClusteringPreProcessingStartedMessage.cs
similarity index 100%
rename from src/Messaging/Messages/MatchingMessages/Clustering/ClusteringPreProcessingStartedMessage.cs
rename to src/Libraries/Messaging/Messages/MatchingMessages/Clustering/ClusteringPreProcessingStartedMessage.cs
diff --git a/src/Messaging/Messages/MatchingMessages/MatchingMessage.cs b/src/Libraries/Messaging/Messages/MatchingMessages/MatchingMessage.cs
similarity index 100%
rename from src/Messaging/Messages/MatchingMessages/MatchingMessage.cs
rename to src/Libraries/Messaging/Messages/MatchingMessages/MatchingMessage.cs
diff --git a/src/Messaging/Messages/MatchingMessages/MatchingScoreCandidatesFinishedMessage.cs b/src/Libraries/Messaging/Messages/MatchingMessages/MatchingScoreCandidatesFinishedMessage.cs
similarity index 100%
rename from src/Messaging/Messages/MatchingMessages/MatchingScoreCandidatesFinishedMessage.cs
rename to src/Libraries/Messaging/Messages/MatchingMessages/MatchingScoreCandidatesFinishedMessage.cs
diff --git a/src/Messaging/Messages/MatchingMessages/MatchingScoreCandidatesMessage.cs b/src/Libraries/Messaging/Messages/MatchingMessages/MatchingScoreCandidatesMessage.cs
similarity index 100%
rename from src/Messaging/Messages/MatchingMessages/MatchingScoreCandidatesMessage.cs
rename to src/Libraries/Messaging/Messages/MatchingMessages/MatchingScoreCandidatesMessage.cs
diff --git a/src/Messaging/Messages/MatchingMessages/MatchingScoreOustandingEdgesMessage.cs b/src/Libraries/Messaging/Messages/MatchingMessages/MatchingScoreOustandingEdgesMessage.cs
similarity index 100%
rename from src/Messaging/Messages/MatchingMessages/MatchingScoreOustandingEdgesMessage.cs
rename to src/Libraries/Messaging/Messages/MatchingMessages/MatchingScoreOustandingEdgesMessage.cs
diff --git a/src/Messaging/Messages/MergingMessages/CleanupMessages/DeliusFilesCleanupMessage.cs b/src/Libraries/Messaging/Messages/MergingMessages/CleanupMessages/DeliusFilesCleanupMessage.cs
similarity index 100%
rename from src/Messaging/Messages/MergingMessages/CleanupMessages/DeliusFilesCleanupMessage.cs
rename to src/Libraries/Messaging/Messages/MergingMessages/CleanupMessages/DeliusFilesCleanupMessage.cs
diff --git a/src/Messaging/Messages/MergingMessages/CleanupMessages/OfflocFilesCleanupMessage.cs b/src/Libraries/Messaging/Messages/MergingMessages/CleanupMessages/OfflocFilesCleanupMessage.cs
similarity index 100%
rename from src/Messaging/Messages/MergingMessages/CleanupMessages/OfflocFilesCleanupMessage.cs
rename to src/Libraries/Messaging/Messages/MergingMessages/CleanupMessages/OfflocFilesCleanupMessage.cs
diff --git a/src/Messaging/Messages/MergingMessages/MergingMessage.cs b/src/Libraries/Messaging/Messages/MergingMessages/MergingMessage.cs
similarity index 100%
rename from src/Messaging/Messages/MergingMessages/MergingMessage.cs
rename to src/Libraries/Messaging/Messages/MergingMessages/MergingMessage.cs
diff --git a/src/Messaging/Messages/Message.cs b/src/Libraries/Messaging/Messages/Message.cs
similarity index 100%
rename from src/Messaging/Messages/Message.cs
rename to src/Libraries/Messaging/Messages/Message.cs
diff --git a/src/Messaging/Messages/StagingMessages/Delius/ClearTemporaryDeliusFiles.cs b/src/Libraries/Messaging/Messages/StagingMessages/Delius/ClearTemporaryDeliusFiles.cs
similarity index 100%
rename from src/Messaging/Messages/StagingMessages/Delius/ClearTemporaryDeliusFiles.cs
rename to src/Libraries/Messaging/Messages/StagingMessages/Delius/ClearTemporaryDeliusFiles.cs
diff --git a/src/Messaging/Messages/StagingMessages/Delius/DeliusDownloadFinishedMessage.cs b/src/Libraries/Messaging/Messages/StagingMessages/Delius/DeliusDownloadFinishedMessage.cs
similarity index 100%
rename from src/Messaging/Messages/StagingMessages/Delius/DeliusDownloadFinishedMessage.cs
rename to src/Libraries/Messaging/Messages/StagingMessages/Delius/DeliusDownloadFinishedMessage.cs
diff --git a/src/Messaging/Messages/StagingMessages/Delius/DeliusKickoffMessage.cs b/src/Libraries/Messaging/Messages/StagingMessages/Delius/DeliusKickoffMessage.cs
similarity index 100%
rename from src/Messaging/Messages/StagingMessages/Delius/DeliusKickoffMessage.cs
rename to src/Libraries/Messaging/Messages/StagingMessages/Delius/DeliusKickoffMessage.cs
diff --git a/src/Messaging/Messages/StagingMessages/Delius/DeliusParserFinishedMessage.cs b/src/Libraries/Messaging/Messages/StagingMessages/Delius/DeliusParserFinishedMessage.cs
similarity index 100%
rename from src/Messaging/Messages/StagingMessages/Delius/DeliusParserFinishedMessage.cs
rename to src/Libraries/Messaging/Messages/StagingMessages/Delius/DeliusParserFinishedMessage.cs
diff --git a/src/Messaging/Messages/StagingMessages/KickoffMessage.cs b/src/Libraries/Messaging/Messages/StagingMessages/KickoffMessage.cs
similarity index 100%
rename from src/Messaging/Messages/StagingMessages/KickoffMessage.cs
rename to src/Libraries/Messaging/Messages/StagingMessages/KickoffMessage.cs
diff --git a/src/Messaging/Messages/StagingMessages/Offloc/ClearHalfCleanedOfflocFiles.cs b/src/Libraries/Messaging/Messages/StagingMessages/Offloc/ClearHalfCleanedOfflocFiles.cs
similarity index 100%
rename from src/Messaging/Messages/StagingMessages/Offloc/ClearHalfCleanedOfflocFiles.cs
rename to src/Libraries/Messaging/Messages/StagingMessages/Offloc/ClearHalfCleanedOfflocFiles.cs
diff --git a/src/Messaging/Messages/StagingMessages/Offloc/OfflocCleanerFinishedMessage.cs b/src/Libraries/Messaging/Messages/StagingMessages/Offloc/OfflocCleanerFinishedMessage.cs
similarity index 100%
rename from src/Messaging/Messages/StagingMessages/Offloc/OfflocCleanerFinishedMessage.cs
rename to src/Libraries/Messaging/Messages/StagingMessages/Offloc/OfflocCleanerFinishedMessage.cs
diff --git a/src/Messaging/Messages/StagingMessages/Offloc/OfflocDownloadFinished.cs b/src/Libraries/Messaging/Messages/StagingMessages/Offloc/OfflocDownloadFinished.cs
similarity index 100%
rename from src/Messaging/Messages/StagingMessages/Offloc/OfflocDownloadFinished.cs
rename to src/Libraries/Messaging/Messages/StagingMessages/Offloc/OfflocDownloadFinished.cs
diff --git a/src/Messaging/Messages/StagingMessages/Offloc/OfflocParserFinishedMessage.cs b/src/Libraries/Messaging/Messages/StagingMessages/Offloc/OfflocParserFinishedMessage.cs
similarity index 100%
rename from src/Messaging/Messages/StagingMessages/Offloc/OfflocParserFinishedMessage.cs
rename to src/Libraries/Messaging/Messages/StagingMessages/Offloc/OfflocParserFinishedMessage.cs
diff --git a/src/Messaging/Messages/StagingMessages/StagingMessage.cs b/src/Libraries/Messaging/Messages/StagingMessages/StagingMessage.cs
similarity index 100%
rename from src/Messaging/Messages/StagingMessages/StagingMessage.cs
rename to src/Libraries/Messaging/Messages/StagingMessages/StagingMessage.cs
diff --git a/src/Messaging/Messages/StatusMessages/StagingFinishedMessage.cs b/src/Libraries/Messaging/Messages/StatusMessages/StagingFinishedMessage.cs
similarity index 100%
rename from src/Messaging/Messages/StatusMessages/StagingFinishedMessage.cs
rename to src/Libraries/Messaging/Messages/StatusMessages/StagingFinishedMessage.cs
diff --git a/src/Messaging/Messages/StatusMessages/StatusUpdateMessage.cs b/src/Libraries/Messaging/Messages/StatusMessages/StatusUpdateMessage.cs
similarity index 100%
rename from src/Messaging/Messages/StatusMessages/StatusUpdateMessage.cs
rename to src/Libraries/Messaging/Messages/StatusMessages/StatusUpdateMessage.cs
diff --git a/src/Messaging/Messaging.csproj b/src/Libraries/Messaging/Messaging.csproj
similarity index 100%
rename from src/Messaging/Messaging.csproj
rename to src/Libraries/Messaging/Messaging.csproj
diff --git a/src/Messaging/Queues/TBlockingQueue.cs b/src/Libraries/Messaging/Queues/TBlockingQueue.cs
similarity index 100%
rename from src/Messaging/Queues/TBlockingQueue.cs
rename to src/Libraries/Messaging/Queues/TBlockingQueue.cs
diff --git a/src/Messaging/Queues/TDbNoReturnQueue.cs b/src/Libraries/Messaging/Queues/TDbNoReturnQueue.cs
similarity index 100%
rename from src/Messaging/Queues/TDbNoReturnQueue.cs
rename to src/Libraries/Messaging/Queues/TDbNoReturnQueue.cs
diff --git a/src/Messaging/Queues/TDbQueue.cs b/src/Libraries/Messaging/Queues/TDbQueue.cs
similarity index 100%
rename from src/Messaging/Queues/TDbQueue.cs
rename to src/Libraries/Messaging/Queues/TDbQueue.cs
diff --git a/src/Messaging/Queues/TImportQueue.cs b/src/Libraries/Messaging/Queues/TImportQueue.cs
similarity index 100%
rename from src/Messaging/Queues/TImportQueue.cs
rename to src/Libraries/Messaging/Queues/TImportQueue.cs
diff --git a/src/Messaging/Queues/TMatchingQueue.cs b/src/Libraries/Messaging/Queues/TMatchingQueue.cs
similarity index 100%
rename from src/Messaging/Queues/TMatchingQueue.cs
rename to src/Libraries/Messaging/Queues/TMatchingQueue.cs
diff --git a/src/Messaging/Queues/TMergingQueue.cs b/src/Libraries/Messaging/Queues/TMergingQueue.cs
similarity index 100%
rename from src/Messaging/Queues/TMergingQueue.cs
rename to src/Libraries/Messaging/Queues/TMergingQueue.cs
diff --git a/src/Messaging/Queues/TStagingQueue.cs b/src/Libraries/Messaging/Queues/TStagingQueue.cs
similarity index 100%
rename from src/Messaging/Queues/TStagingQueue.cs
rename to src/Libraries/Messaging/Queues/TStagingQueue.cs
diff --git a/src/Messaging/Queues/TStatusQueue.cs b/src/Libraries/Messaging/Queues/TStatusQueue.cs
similarity index 100%
rename from src/Messaging/Queues/TStatusQueue.cs
rename to src/Libraries/Messaging/Queues/TStatusQueue.cs
diff --git a/src/Libraries/Messaging/Services/RabbitService.cs b/src/Libraries/Messaging/Services/RabbitService.cs
new file mode 100644
index 0000000..2fa08c0
--- /dev/null
+++ b/src/Libraries/Messaging/Services/RabbitService.cs
@@ -0,0 +1,327 @@
+using RabbitMQ.Client;
+using System.Text;
+using RabbitMQ.Client.Events;
+using System.Text.Json;
+using Messaging.Queues;
+using Messaging.Messages.StagingMessages;
+using Messaging.Messages.MergingMessages;
+using Messaging.Messages.StatusMessages;
+using Messaging.Interfaces;
+using Messaging.Messages.DbMessages.Sending;
+using Messaging.Messages.DbMessages.Receiving;
+using EnvironmentSetup;
+using Messaging.Messages;
+using Messaging.Messages.ImportMessages;
+using Messaging.Messages.BlockingMessages;
+using Messaging.Messages.MatchingMessages;
+
+namespace Messaging.Services;
+
+public class RabbitService : IMessageService
+{
+ private IChannel channel;
+ private IConnection connection;
+
+ private SemaphoreSlim dbSemaphore = new SemaphoreSlim(1, 1);
+ private JsonSerializerOptions serializerOpts = new JsonSerializerOptions { IncludeFields = true };
+
+ private RabbitService()
+ {
+ }
+
+ public static async Task CreateAsync(RabbitHostingContextWrapper hostingContext)
+ {
+ var service = new RabbitService();
+ await service.InitializeAsync(hostingContext);
+ return service;
+ }
+
+ private async Task InitializeAsync(RabbitHostingContextWrapper hostingContext)
+ {
+ ConnectionFactory factory;
+
+ // Configures connection factory based on whether a full URI is provided or individual components.
+ if (hostingContext.Uri is not null)
+ {
+ factory = new ConnectionFactory() { Uri = hostingContext.Uri };
+ }
+ else
+ {
+ factory = new ConnectionFactory()
+ {
+ HostName = hostingContext.Context,
+ UserName = hostingContext.Username,
+ Password = hostingContext.Password
+ };
+ }
+
+ connection = await factory.CreateConnectionAsync();
+ channel = await connection.CreateChannelAsync();
+
+ //Declares separate exchanges for each group of messages and binds queue.
+ TStagingQueue[] stagingQueues = Enum.GetValues();
+ TMergingQueue[] mergingQueues = Enum.GetValues();
+ TDbQueue[] dbQueues = Enum.GetValues();
+ TStatusQueue[] statusQueues = Enum.GetValues();
+ TImportQueue[] importQueues = Enum.GetValues();
+ TBlockingQueue[] blockingQueues = Enum.GetValues();
+ TMatchingQueue[] matchingQueues = Enum.GetValues();
+
+ await channel.ExchangeDeclareAsync(Exchanges.staging, ExchangeType.Direct);
+ await channel.ExchangeDeclareAsync(Exchanges.merging, ExchangeType.Direct);
+ await channel.ExchangeDeclareAsync(Exchanges.database, ExchangeType.Direct);
+ await channel.ExchangeDeclareAsync(Exchanges.status, ExchangeType.Direct);
+ await channel.ExchangeDeclareAsync(Exchanges.import, ExchangeType.Direct);
+ await channel.ExchangeDeclareAsync(Exchanges.blocking, ExchangeType.Direct);
+ await channel.ExchangeDeclareAsync(Exchanges.matching, ExchangeType.Direct);
+
+ await InitializeQueueAsync(stagingQueues, Exchanges.staging);
+ await InitializeQueueAsync(mergingQueues, Exchanges.merging);
+ await InitializeQueueAsync(dbQueues, Exchanges.database);
+ await InitializeQueueAsync(statusQueues, Exchanges.status);
+ await InitializeQueueAsync(importQueues, Exchanges.import);
+ await InitializeQueueAsync(blockingQueues, Exchanges.blocking);
+ await InitializeQueueAsync(matchingQueues, Exchanges.matching);
+ }
+
+ private async Task InitializeQueueAsync(T[] queues, string exchange) where T : Enum
+ {
+ foreach (var queue in queues)
+ {
+ await channel.QueueDeclareAsync(
+ queue: queue.ToString(),
+ durable: true,
+ exclusive: false,
+ autoDelete: false,
+ arguments: null
+ );
+ await channel.QueueBindAsync(queue.ToString(), exchange, queue.ToString());
+ }
+ }
+
+ public async Task StatusPublishAsync(T message) where T : StatusUpdateMessage
+ {
+ await channel.BasicPublishAsync(
+ exchange: Exchanges.status,
+ routingKey: message.RoutingKey.ToString(),
+ mandatory: false,
+ body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
+ );
+ }
+
+ public async Task StatusSubscribeAsync(Action handler, TStatusQueue queue) where T : StatusUpdateMessage
+ {
+ var consumer = new AsyncEventingBasicConsumer(channel);
+ await channel.BasicConsumeAsync(queue.ToString(), true, consumer);
+
+ consumer.ReceivedAsync += (model, ea) => { handler.Invoke(JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), new JsonSerializerOptions { IncludeFields = true })!); return Task.CompletedTask; };
+ }
+
+ public async Task StagingPublishAsync(T message) where T : StagingMessage
+ {
+ await channel.BasicPublishAsync(
+ exchange: Exchanges.staging,
+ routingKey: message.routingKey.ToString(),
+ mandatory: false,
+ body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
+ );
+ await AssociatedMessagePublishAsync(message);
+ }
+
+ public async Task StagingSubscribeAsync(Action handler, TStagingQueue queue) where T : StagingMessage
+ {
+ var consumer = new AsyncEventingBasicConsumer(channel);
+ await channel.BasicConsumeAsync(queue.ToString(), true, consumer);
+
+ consumer.ReceivedAsync += (model, ea) => { handler.Invoke(JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), new JsonSerializerOptions { IncludeFields = true })!); return Task.CompletedTask; };
+ }
+
+ private async Task DbPublishRequestAsync(T message) where T : DbRequestMessage
+ {
+ var props = new BasicProperties
+ {
+ ReplyTo = message.ReplyQueue.ToString()
+ };
+
+ await channel.BasicPublishAsync(
+ exchange: Exchanges.database,
+ routingKey: message.Queue.ToString(),
+ mandatory: false,
+ basicProperties: props,
+ body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
+ );
+
+ await AssociatedMessagePublishAsync(message);
+ }
+
+ public async Task DbPublishResponseAsync(T message) where T : DbResponseMessage
+ {
+ await channel.BasicPublishAsync(
+ exchange: Exchanges.database,
+ routingKey: message.Queue.ToString(),
+ mandatory: false,
+ body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
+ );
+
+ await AssociatedMessagePublishAsync(message);
+ }
+
+ public async Task SubscribeToDbRequestAsync(Action handler, TDbQueue queue) where T : DbRequestMessage
+ {
+ var consumer = new AsyncEventingBasicConsumer(channel);
+ await channel.BasicConsumeAsync(queue.ToString(), true, consumer);
+
+ consumer.ReceivedAsync += (model, ea) =>
+ {
+ var msg = JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), serializerOpts)!;
+ handler.Invoke(msg);
+ return Task.CompletedTask;
+ };
+ }
+
+ public async Task SendDbRequestAndWaitForResponseAsync(TRequest message)
+ where TRequest : DbRequestMessage
+ where TResponse : DbResponseMessage
+ {
+ await dbSemaphore.WaitAsync();
+
+ var consumer = new AsyncEventingBasicConsumer(channel);
+ string tempConsumer = await channel.BasicConsumeAsync(message.ReplyQueue.ToString(), true, consumer);
+
+ var taskCompletion = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
+
+ AsyncEventHandler eventHandler = (model, ea) =>
+ {
+ DbMessageReceivedCallback(model, ea);
+ return Task.CompletedTask;
+ };
+
+ consumer.ReceivedAsync += eventHandler;
+
+ try
+ {
+ await DbPublishRequestAsync(message);
+ return await taskCompletion.Task;
+ }
+ finally
+ {
+ consumer.ReceivedAsync -= eventHandler;
+ await channel.BasicCancelAsync(tempConsumer);
+ dbSemaphore.Release();
+ }
+
+ void DbMessageReceivedCallback(object? model, BasicDeliverEventArgs ea)
+ {
+ try
+ {
+ var response = JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), serializerOpts)!;
+ taskCompletion.SetResult(response);
+ }
+ catch(Exception ex)
+ {
+ taskCompletion.SetException(ex);
+ }
+ }
+ }
+
+ public async Task MergingPublishAsync(T message) where T : MergingMessage
+ {
+ await channel.BasicPublishAsync(
+ exchange: Exchanges.merging,
+ routingKey: message.routingKey.ToString(),
+ mandatory: false,
+ body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
+ );
+
+ await AssociatedMessagePublishAsync(message);
+ }
+
+ public async Task MergingSubscribeAsync(Action handler, TMergingQueue queue) where T : MergingMessage
+ {
+ var consumer = new AsyncEventingBasicConsumer(channel);
+ await channel.BasicConsumeAsync(queue.ToString(), true, consumer);
+
+ consumer.ReceivedAsync += (model, ea) =>
+ {
+ handler.Invoke(JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), new JsonSerializerOptions { IncludeFields = true })!);
+ return Task.CompletedTask;
+ };
+ }
+
+ public async Task ImportPublishAsync(T message) where T : ImportMessage
+ {
+ await channel.BasicPublishAsync(
+ exchange: Exchanges.import,
+ routingKey: message.routingKey.ToString(),
+ mandatory: false,
+ body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
+ );
+ await AssociatedMessagePublishAsync(message);
+ }
+
+ public async Task ImportSubscribeAsync(Action handler, TImportQueue queue) where T : ImportMessage
+ {
+ var consumer = new AsyncEventingBasicConsumer(channel);
+ await channel.BasicConsumeAsync(queue.ToString(), true, consumer);
+
+ consumer.ReceivedAsync += (model, ea) =>
+ {
+ handler.Invoke(JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), new JsonSerializerOptions { IncludeFields = true })!);
+ return Task.CompletedTask;
+ };
+ }
+
+ public async Task BlockingPublishAsync(T message) where T : BlockingMessage
+ {
+ await channel.BasicPublishAsync(
+ exchange: Exchanges.blocking,
+ routingKey: message.routingKey.ToString(),
+ mandatory: false,
+ body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
+ );
+ await AssociatedMessagePublishAsync(message);
+ }
+
+ public async Task BlockingSubscribeAsync(Action handler, TBlockingQueue queue) where T : BlockingMessage
+ {
+ var consumer = new AsyncEventingBasicConsumer(channel);
+ await channel.BasicConsumeAsync(queue.ToString(), true, consumer);
+
+ consumer.ReceivedAsync += (model, ea) =>
+ {
+ handler.Invoke(JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), new JsonSerializerOptions { IncludeFields = true })!);
+ return Task.CompletedTask;
+ };
+ }
+
+ private async Task AssociatedMessagePublishAsync(T message) where T : Message
+ {
+ if (message.StatusMessage.Message != string.Empty)
+ {
+ await StatusPublishAsync(message.StatusMessage);
+ }
+ }
+
+ public async Task MatchingPublishAsync(T message) where T : MatchingMessage
+ {
+ await channel.BasicPublishAsync(
+ exchange: Exchanges.matching,
+ routingKey: message.routingKey.ToString(),
+ mandatory: false,
+ body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
+ );
+ await AssociatedMessagePublishAsync(message);
+ }
+
+ public async Task MatchingSubscribeAsync(Action handler, TMatchingQueue queue) where T : MatchingMessage
+ {
+ var consumer = new AsyncEventingBasicConsumer(channel);
+ await channel.BasicConsumeAsync(queue.ToString(), true, consumer);
+
+ consumer.ReceivedAsync += (model, ea) =>
+ {
+ handler.Invoke(JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), new JsonSerializerOptions { IncludeFields = true })!);
+ return Task.CompletedTask;
+ };
+ }
+}
\ No newline at end of file
diff --git a/src/Logging/Logging.csproj b/src/Logging/Logging.csproj
index 0f79ae6..709f6bf 100644
--- a/src/Logging/Logging.csproj
+++ b/src/Logging/Logging.csproj
@@ -7,8 +7,8 @@
-
-
+
+
diff --git a/src/Logging/LoggingBackgroundService.cs b/src/Logging/LoggingBackgroundService.cs
index 3627ab1..86046c5 100644
--- a/src/Logging/LoggingBackgroundService.cs
+++ b/src/Logging/LoggingBackgroundService.cs
@@ -10,13 +10,10 @@ public class LoggingBackgroundService(
{
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
- await Task.Run(() =>
- {
- statusService.StatusSubscribe(Log, TStatusQueue.StatusUpdate);
- statusService.StatusSubscribe(Log, TStatusQueue.StagingFinished);
- }, stoppingToken);
+ await statusService.StatusSubscribeAsync(Log, TStatusQueue.StatusUpdate);
+ await statusService.StatusSubscribeAsync(Log, TStatusQueue.StagingFinished);
- statusService.StatusPublish(new StatusUpdateMessage("Logger configured."));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage("Logger configured."));
}
private void Log(StatusUpdateMessage statusUpdate)
diff --git a/src/Logging/Program.cs b/src/Logging/Program.cs
index 830e35a..dafdd73 100644
--- a/src/Logging/Program.cs
+++ b/src/Logging/Program.cs
@@ -14,7 +14,12 @@
builder.Services.ConfigureServices(builder.Configuration);
- builder.Services.AddSingleton();
+ builder.Services.AddSingleton(sp =>
+ {
+ var rabbitContext = sp.GetRequiredService();
+ return RabbitService.CreateAsync(rabbitContext).GetAwaiter().GetResult();
+ });
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
builder.Services.AddHostedService();
var app = builder.Build();
diff --git a/src/Matching.Engine/Extensions/DmsExtensions.cs b/src/Matching.Engine/Extensions/DmsExtensions.cs
index 65ca332..232dd26 100644
--- a/src/Matching.Engine/Extensions/DmsExtensions.cs
+++ b/src/Matching.Engine/Extensions/DmsExtensions.cs
@@ -1,4 +1,5 @@
using Messaging.Services;
+using EnvironmentSetup;
namespace Matching.Engine.Extensions;
@@ -6,10 +7,15 @@ public static class DmsExtensions
{
public static void AddMessagingServices(this IHostApplicationBuilder builder)
{
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
+ builder.Services.AddSingleton(sp =>
+ {
+ var rabbitContext = sp.GetRequiredService();
+ return RabbitService.CreateAsync(rabbitContext).GetAwaiter().GetResult();
+ });
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
}
}
diff --git a/src/Matching.Engine/Matching.Engine.csproj b/src/Matching.Engine/Matching.Engine.csproj
index 300c38a..7580da1 100644
--- a/src/Matching.Engine/Matching.Engine.csproj
+++ b/src/Matching.Engine/Matching.Engine.csproj
@@ -30,9 +30,9 @@
-
-
-
+
+
+
diff --git a/src/Matching.Engine/Services/ClusteringService.cs b/src/Matching.Engine/Services/ClusteringService.cs
index 7318c18..2fc0ad0 100644
--- a/src/Matching.Engine/Services/ClusteringService.cs
+++ b/src/Matching.Engine/Services/ClusteringService.cs
@@ -16,15 +16,15 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
try
{
- await Task.Run(() =>
+ await Task.Run(async () =>
{
- matchingMessagingService.MatchingSubscribe(async (message) =>
+ await matchingMessagingService.MatchingSubscribeAsync(async (message) =>
{
await PreProcessAsync(stoppingToken);
}, TMatchingQueue.MatchingScoreCandidatesFinished);
- matchingMessagingService.MatchingSubscribe(async (message) =>
+ await matchingMessagingService.MatchingSubscribeAsync(async (message) =>
{
await PostProcessAsync(stoppingToken);
}, TMatchingQueue.ClusteringPreProcessingFinished);
@@ -40,15 +40,15 @@ await Task.Run(() =>
private async Task PreProcessAsync(CancellationToken stoppingToken)
{
await clusteringRepository.ClusterPreProcessAsync();
- matchingMessagingService.MatchingPublish(new ClusteringPreProcessingStartedMessage());
+ await matchingMessagingService.MatchingPublishAsync(new ClusteringPreProcessingStartedMessage());
}
private async Task PostProcessAsync(CancellationToken stoppingToken)
{
- statusMessagingService.StatusPublish(new StatusUpdateMessage("Clustering (post-processing) started..."));
+ await statusMessagingService.StatusPublishAsync(new StatusUpdateMessage("Clustering (post-processing) started..."));
await clusteringRepository.ClusterPostProcessAsync();
- matchingMessagingService.MatchingPublish(new ClusteringPostProcessingFinishedMessage());
+ await matchingMessagingService.MatchingPublishAsync(new ClusteringPostProcessingFinishedMessage());
}
}
diff --git a/src/Matching.Engine/Services/ComparatorService.cs b/src/Matching.Engine/Services/ComparatorService.cs
index 6a30127..b47b51f 100644
--- a/src/Matching.Engine/Services/ComparatorService.cs
+++ b/src/Matching.Engine/Services/ComparatorService.cs
@@ -25,11 +25,11 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
try
{
- await Task.Run(() =>
+ await Task.Run(async () =>
{
matchingOptions = options.Value.ToDictionary(o => o.MatchingKey);
- blockingMessagingService.BlockingSubscribe(async (message) =>
+ await blockingMessagingService.BlockingSubscribeAsync(async (message) =>
{
var items = await matchingRepository.GetAllAsync();
@@ -41,11 +41,11 @@ await Task.Run(() =>
records.Clear();
- matchingMessagingService.MatchingPublish(new MatchingScoreCandidatesMessage());
+ await matchingMessagingService.MatchingPublishAsync(new MatchingScoreCandidatesMessage());
}, TBlockingQueue.BlockingFinished);
- matchingMessagingService.MatchingSubscribe(async (message) =>
+ await matchingMessagingService.MatchingSubscribeAsync(async (message) =>
{
var items = await clusteringRepository.GetAllAsync();
@@ -57,7 +57,7 @@ await Task.Run(() =>
records.Clear();
- matchingMessagingService.MatchingPublish(new MatchingScoreOutstandingEdgesMessage());
+ await matchingMessagingService.MatchingPublishAsync(new MatchingScoreOutstandingEdgesMessage());
}, TMatchingQueue.ClusteringPreProcessingStarted);
}, stoppingToken);
@@ -70,7 +70,7 @@ await Task.Run(() =>
private async Task ProcessAsync(IEnumerable> records, CancellationToken stoppingToken)
{
- statusMessagingService.StatusPublish(new StatusUpdateMessage("Comparing candidates..."));
+ await statusMessagingService.StatusPublishAsync(new StatusUpdateMessage("Comparing candidates..."));
queue.Results.Clear();
diff --git a/src/Matching.Engine/Services/ScorerService.cs b/src/Matching.Engine/Services/ScorerService.cs
index be60572..d783f21 100644
--- a/src/Matching.Engine/Services/ScorerService.cs
+++ b/src/Matching.Engine/Services/ScorerService.cs
@@ -20,26 +20,26 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
try
{
- await Task.Run(() =>
+ await Task.Run(async () =>
{
matchingOptions = options.Value.ToDictionary(o => o.MatchingKey);
- matchingMessagingService.MatchingSubscribe(async (message) =>
+ await matchingMessagingService.MatchingSubscribeAsync(async (message) =>
{
var results = await ScoreAsync(stoppingToken);
await matchingRepository.BulkInsertAsync(results);
results = null;
- matchingMessagingService.MatchingPublish(new MatchingScoreCandidatesFinishedMessage());
+ await matchingMessagingService.MatchingPublishAsync(new MatchingScoreCandidatesFinishedMessage());
}, TMatchingQueue.MatchingScoreCandidatesMessage);
- matchingMessagingService.MatchingSubscribe(async (message) =>
+ await matchingMessagingService.MatchingSubscribeAsync(async (message) =>
{
var results = await ScoreAsync(stoppingToken);
await clusteringRepository.BulkInsertAsync(results);
results = null;
- matchingMessagingService.MatchingPublish(new ClusteringPreProcessingFinishedMessage());
+ await matchingMessagingService.MatchingPublishAsync(new ClusteringPreProcessingFinishedMessage());
}, TMatchingQueue.MatchingScoreOutstandingEdgesMessage);
}, stoppingToken);
diff --git a/src/Meow/Meow.csproj b/src/Meow/Meow.csproj
index f03b6db..5bffacb 100644
--- a/src/Meow/Meow.csproj
+++ b/src/Meow/Meow.csproj
@@ -15,8 +15,8 @@
-
-
+
+
diff --git a/src/Messaging/Interfaces/IBlockingMessagingService.cs b/src/Messaging/Interfaces/IBlockingMessagingService.cs
deleted file mode 100644
index 88f8d84..0000000
--- a/src/Messaging/Interfaces/IBlockingMessagingService.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using Messaging.Messages.BlockingMessages;
-using Messaging.Queues;
-
-namespace Messaging.Interfaces
-{
- public interface IBlockingMessagingService
- {
- void BlockingPublish(T message) where T : BlockingMessage;
- void BlockingSubscribe(Action handler, TBlockingQueue queue) where T : BlockingMessage;
- }
-}
\ No newline at end of file
diff --git a/src/Messaging/Interfaces/IDbMessagingService.cs b/src/Messaging/Interfaces/IDbMessagingService.cs
deleted file mode 100644
index 178214b..0000000
--- a/src/Messaging/Interfaces/IDbMessagingService.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using Messaging.Messages.DbMessages.Receiving;
-using Messaging.Messages.DbMessages.Sending;
-using Messaging.Queues;
-
-namespace Messaging.Interfaces;
-
-public interface IDbMessagingService
-{
- void DbPublishResponse(T message) where T : DbResponseMessage;
- void SubscribeToDbRequest(Action handler, TDbQueue queue) where T : DbRequestMessage;
- Task SendDbRequestAndWaitForResponse(T message) where T : DbRequestMessage where T2 : DbResponseMessage;
-
- //void DbUnsubscribe(Action handler, TDbQueue queue) where T : DbRequestMessage;
-}
diff --git a/src/Messaging/Interfaces/IImportMessagingService.cs b/src/Messaging/Interfaces/IImportMessagingService.cs
deleted file mode 100644
index 7342211..0000000
--- a/src/Messaging/Interfaces/IImportMessagingService.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using Messaging.Messages.ImportMessages;
-using Messaging.Queues;
-
-namespace Messaging.Interfaces
-{
- public interface IImportMessagingService
- {
- void ImportPublish(T message) where T : ImportMessage;
- void ImportSubscribe(Action handler, TImportQueue queue) where T : ImportMessage;
- }
-}
\ No newline at end of file
diff --git a/src/Messaging/Interfaces/IMatchingMessagingService.cs b/src/Messaging/Interfaces/IMatchingMessagingService.cs
deleted file mode 100644
index 6317ada..0000000
--- a/src/Messaging/Interfaces/IMatchingMessagingService.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using Messaging.Messages.MatchingMessages;
-using Messaging.Queues;
-
-namespace Messaging.Interfaces
-{
- public interface IMatchingMessagingService
- {
- void MatchingPublish(T message) where T : MatchingMessage;
- void MatchingSubscribe(Action handler, TMatchingQueue queue) where T : MatchingMessage;
- }
-}
diff --git a/src/Messaging/Interfaces/IMergingMessagingService.cs b/src/Messaging/Interfaces/IMergingMessagingService.cs
deleted file mode 100644
index c94bf86..0000000
--- a/src/Messaging/Interfaces/IMergingMessagingService.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-
-using Messaging.Messages.MergingMessages;
-using Messaging.Queues;
-
-namespace Messaging.Interfaces;
-
-//Interfaces are split up so microservices can access a sub-section of the messaging service.
-public interface IMergingMessagingService
-{
- void MergingPublish(T message) where T : MergingMessage;
- void MergingSubscribe(Action handler, TMergingQueue queue) where T : MergingMessage;
-}
diff --git a/src/Messaging/Interfaces/IStagingMessagingService.cs b/src/Messaging/Interfaces/IStagingMessagingService.cs
deleted file mode 100644
index cd16f79..0000000
--- a/src/Messaging/Interfaces/IStagingMessagingService.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-
-using Messaging.Messages.StagingMessages;
-using Messaging.Queues;
-
-namespace Messaging.Interfaces;
-
-public interface IStagingMessagingService
-{
- void StagingPublish(T message) where T : StagingMessage;
- void StagingSubscribe(Action handler, TStagingQueue queue) where T : StagingMessage;
-}
diff --git a/src/Messaging/Interfaces/IStatusMessagingService.cs b/src/Messaging/Interfaces/IStatusMessagingService.cs
deleted file mode 100644
index 391ef06..0000000
--- a/src/Messaging/Interfaces/IStatusMessagingService.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-
-using Messaging.Messages.StatusMessages;
-using Messaging.Queues;
-
-namespace Messaging.Interfaces;
-
-public interface IStatusMessagingService
-{
- void StatusPublish(T Message) where T : StatusUpdateMessage;
- void StatusSubscribe(Action handler, TStatusQueue queue) where T : StatusUpdateMessage;
-}
diff --git a/src/Messaging/Services/RabbitService.cs b/src/Messaging/Services/RabbitService.cs
deleted file mode 100644
index 164f8a1..0000000
--- a/src/Messaging/Services/RabbitService.cs
+++ /dev/null
@@ -1,304 +0,0 @@
-using RabbitMQ.Client;
-using System.Text;
-using RabbitMQ.Client.Events;
-using System.Text.Json;
-using Messaging.Queues;
-using Messaging.Messages.StagingMessages;
-using Messaging.Messages.MergingMessages;
-using Messaging.Messages.StatusMessages;
-using Messaging.Interfaces;
-using Messaging.Messages.DbMessages.Sending;
-using Messaging.Messages.DbMessages.Receiving;
-using EnvironmentSetup;
-using Messaging.Messages;
-using Messaging.Messages.ImportMessages;
-using Messaging.Messages.BlockingMessages;
-using Messaging.Messages.MatchingMessages;
-
-namespace Messaging.Services;
-
-public class RabbitService : IMessageService
-{
- //Might not need to be a field.
- private RabbitHostingContextWrapper rabbitContext;
-
- private ConnectionFactory factory;
- private IModel channel;
- private IConnection connection;
-
- private SemaphoreSlim dbSemaphore = new SemaphoreSlim(1, 1);
- private JsonSerializerOptions serializerOpts = new JsonSerializerOptions { IncludeFields = true };
-
- public RabbitService(RabbitHostingContextWrapper hostingContext)
- {
- this.rabbitContext = hostingContext;
-
- // Configures connection factory based on whether a full URI is provided or individual components.
- if (hostingContext.Uri is not null)
- {
- factory = new ConnectionFactory() { Uri = hostingContext.Uri };
- }
- else
- {
- factory = new ConnectionFactory()
- {
- HostName = hostingContext.Context,
- UserName = hostingContext.Username,
- Password = hostingContext.Password
- };
- }
-
- connection = factory.CreateConnection();
- channel = connection.CreateModel();
-
- //Declares separate exchanges for each group of messages and binds queue.
- TStagingQueue[] stagingQueues = Enum.GetValues();
- TMergingQueue[] mergingQueues = Enum.GetValues();
- TDbQueue[] dbQueues = Enum.GetValues();
- TStatusQueue[] statusQueues = Enum.GetValues();
- TImportQueue[] importQueues = Enum.GetValues();
- TBlockingQueue[] blockingQueues = Enum.GetValues();
- TMatchingQueue[] matchingQueues = Enum.GetValues();
-
- channel.ExchangeDeclare(Exchanges.staging, ExchangeType.Direct);
- channel.ExchangeDeclare(Exchanges.merging, ExchangeType.Direct);
- channel.ExchangeDeclare(Exchanges.database, ExchangeType.Direct);
- channel.ExchangeDeclare(Exchanges.status, ExchangeType.Direct);
- channel.ExchangeDeclare(Exchanges.import, ExchangeType.Direct);
- channel.ExchangeDeclare(Exchanges.blocking, ExchangeType.Direct);
- channel.ExchangeDeclare(Exchanges.matching, ExchangeType.Direct);
-
- InitializeQueue(stagingQueues, Exchanges.staging);
- InitializeQueue(mergingQueues, Exchanges.merging);
- InitializeQueue(dbQueues, Exchanges.database);
- InitializeQueue(statusQueues, Exchanges.status);
- InitializeQueue(importQueues, Exchanges.import);
- InitializeQueue(blockingQueues, Exchanges.blocking);
- InitializeQueue(matchingQueues, Exchanges.matching);
- }
-
- //Avoids code repetition in constructor.
- private void InitializeQueue(T[] queues, string exchange) where T : Enum
- {
- foreach (var queue in queues)
- {
- channel.QueueDeclare(
- queue: queue.ToString(),
- durable: true,
- exclusive: false,
- autoDelete: false,
- arguments: null
- );
- channel.QueueBind(queue.ToString(), exchange, queue.ToString());
- }
- }
-
- public void StatusPublish(T message) where T : StatusUpdateMessage
- {
- channel.BasicPublish(
- exchange: Exchanges.status,
- routingKey: message.RoutingKey.ToString(),
- basicProperties: null,
- body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
- );
- }
-
- public void StatusSubscribe(Action handler, TStatusQueue queue) where T : StatusUpdateMessage
- {
- var consumer = new EventingBasicConsumer(channel);
- channel.BasicConsume(queue.ToString(), true, consumer);
-
- consumer.Received += (model, ea) => handler.Invoke(JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), new JsonSerializerOptions { IncludeFields = true })!);
- }
-
- public void StagingPublish(T message) where T : StagingMessage
- {
- channel.BasicPublish(
- exchange: Exchanges.staging,
- routingKey: message.routingKey.ToString(),
- basicProperties: null,
- body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
- );
- AssociatedMessagePublish(message);
- }
-
- public void StagingSubscribe(Action handler, TStagingQueue queue) where T : StagingMessage
- {
- var consumer = new EventingBasicConsumer(channel);
- channel.BasicConsume(queue.ToString(), true, consumer);
-
- consumer.Received += (model, ea) => handler.Invoke(JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), new JsonSerializerOptions { IncludeFields = true })!);
- }
-
- //The IDbInteractionService needs to listen to where these messages are published to.
- private void DbPublishRequest(T message) where T : DbRequestMessage
- {
- //RPC pattern.
- IBasicProperties props = channel.CreateBasicProperties();
- props.ReplyTo = message.ReplyQueue.ToString();
-
- channel.BasicPublish(
- exchange: Exchanges.database,
- routingKey: message.Queue.ToString(),
- basicProperties: props,
- body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
- );
-
- AssociatedMessagePublish(message);
- }
-
- //The client needs to listen to where these messages are published to.
- public void DbPublishResponse(T message) where T : DbResponseMessage
- {
- channel.BasicPublish(
- exchange: Exchanges.database,
- routingKey: message.Queue.ToString(),
- basicProperties: null,
- body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
- );
-
- AssociatedMessagePublish(message);
- }
-
- public void SubscribeToDbRequest(Action handler, TDbQueue queue) where T : DbRequestMessage
- {
- var consumer = new EventingBasicConsumer(channel);
- channel.BasicConsume(queue.ToString(), true, consumer);
-
- consumer.Received += (model, ea) =>
- {
- var msg = JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), serializerOpts)!;
- handler.Invoke(msg);
- };
- }
-
- public async Task SendDbRequestAndWaitForResponse(TRequest message)
- where TRequest : DbRequestMessage
- where TResponse : DbResponseMessage
- {
- await dbSemaphore.WaitAsync();
-
- var consumer = new EventingBasicConsumer(channel);
- string tempConsumer = channel.BasicConsume(message.ReplyQueue.ToString(), true, consumer);
-
- var taskCompletion = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
-
- consumer.Received += DbMessageReceivedCallback;
-
- try
- {
- DbPublishRequest(message);
- return await taskCompletion.Task;
- }
- finally
- {
- consumer.Received -= DbMessageReceivedCallback;
- channel.BasicCancel(tempConsumer);
- dbSemaphore.Release();
- }
-
- void DbMessageReceivedCallback(object? model, BasicDeliverEventArgs ea)
- {
- try
- {
- var response = JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), serializerOpts)!;
- taskCompletion.SetResult(response);
- }
- catch(Exception ex)
- {
- taskCompletion.SetException(ex);
- }
- }
- }
-
- public void MergingPublish(T message) where T : MergingMessage
- {
- channel.BasicPublish(
- exchange: Exchanges.merging,
- routingKey: message.routingKey.ToString(),
- basicProperties: null,
- body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
- );
-
- AssociatedMessagePublish(message);
- }
-
- public void MergingSubscribe(Action handler, TMergingQueue queue) where T : MergingMessage
- {
- var consumer = new EventingBasicConsumer(channel);
- channel.BasicConsume(queue.ToString(), true, consumer);
-
- consumer.Received += (model, ea) =>
- handler.Invoke(JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), new JsonSerializerOptions { IncludeFields = true })!
- );
- }
-
- public void ImportPublish(T message) where T : ImportMessage
- {
- channel.BasicPublish(
- exchange: Exchanges.import,
- routingKey: message.routingKey.ToString(),
- basicProperties: null,
- body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
- );
- AssociatedMessagePublish(message);
- }
-
- public void ImportSubscribe(Action handler, TImportQueue queue) where T : ImportMessage
- {
- var consumer = new EventingBasicConsumer(channel);
- channel.BasicConsume(queue.ToString(), true, consumer);
-
- consumer.Received += (model, ea) =>
- handler.Invoke(JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), new JsonSerializerOptions { IncludeFields = true })!);
- }
-
- public void BlockingPublish(T message) where T : BlockingMessage
- {
- channel.BasicPublish(
- exchange: Exchanges.blocking,
- routingKey: message.routingKey.ToString(),
- basicProperties: null,
- body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
- );
- AssociatedMessagePublish(message);
- }
-
- public void BlockingSubscribe(Action handler, TBlockingQueue queue) where T : BlockingMessage
- {
- var consumer = new EventingBasicConsumer(channel);
- channel.BasicConsume(queue.ToString(), true, consumer);
-
- consumer.Received += (model, ea) =>
- handler.Invoke(JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), new JsonSerializerOptions { IncludeFields = true })!);
- }
-
- //Used internally to publish status messages associated with core messages.
- private void AssociatedMessagePublish(T message) where T : Message
- {
- if (message.StatusMessage.Message != string.Empty)
- {
- StatusPublish(message.StatusMessage);
- }
- }
-
- public void MatchingPublish(T message) where T : MatchingMessage
- {
- channel.BasicPublish(
- exchange: Exchanges.matching,
- routingKey: message.routingKey.ToString(),
- basicProperties: null,
- body: Encoding.UTF8.GetBytes(JsonSerializer.Serialize(message, serializerOpts))
- );
- AssociatedMessagePublish(message);
- }
-
- public void MatchingSubscribe(Action handler, TMatchingQueue queue) where T : MatchingMessage
- {
- var consumer = new EventingBasicConsumer(channel);
- channel.BasicConsume(queue.ToString(), true, consumer);
-
- consumer.Received += (model, ea) =>
- handler.Invoke(JsonSerializer.Deserialize(Encoding.UTF8.GetString(ea.Body.ToArray()), new JsonSerializerOptions { IncludeFields = true })!);
- }
-}
\ No newline at end of file
diff --git a/src/Offloc.Cleaner/Dockerfile b/src/Offloc.Cleaner/Dockerfile
deleted file mode 100644
index 91ca9cc..0000000
--- a/src/Offloc.Cleaner/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
-
-FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
-WORKDIR /app
-
-FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
-WORKDIR /src
-COPY ["src/Offloc.Cleaner/Offloc.Cleaner.csproj", "src/Offloc.Cleaner/"]
-COPY ["src/Messaging/Messaging.csproj", "src/Messaging/"]
-
-RUN dotnet restore "src/Offloc.Cleaner/Offloc.Cleaner.csproj"
-COPY . .
-WORKDIR "/src/src/Offloc.Cleaner"
-RUN dotnet build "Offloc.Cleaner.csproj" -c Release -o /app/build
-
-FROM build AS publish
-RUN dotnet publish "Offloc.Cleaner.csproj" -c Release -o /app/publish /p:UseAppHost=false
-
-FROM base AS final
-WORKDIR /app
-COPY --from=publish /app/publish .
-ENTRYPOINT ["dotnet", "Offloc.Cleaner.dll"]
\ No newline at end of file
diff --git a/src/Offloc.Cleaner/Offloc.Cleaner.csproj b/src/Offloc.Cleaner/Offloc.Cleaner.csproj
index 475a4c4..faecf36 100644
--- a/src/Offloc.Cleaner/Offloc.Cleaner.csproj
+++ b/src/Offloc.Cleaner/Offloc.Cleaner.csproj
@@ -14,8 +14,8 @@
-
-
+
+
diff --git a/src/Offloc.Cleaner/OfflocCleanerBackgroundService.cs b/src/Offloc.Cleaner/OfflocCleanerBackgroundService.cs
index 2125766..b391457 100644
--- a/src/Offloc.Cleaner/OfflocCleanerBackgroundService.cs
+++ b/src/Offloc.Cleaner/OfflocCleanerBackgroundService.cs
@@ -22,7 +22,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await Task.Run(() =>
{
- stagingService.StagingSubscribe(async (message) => await ParseFileAsync(message), TStagingQueue.OfflocCleaner);
+ stagingService.StagingSubscribeAsync(async (message) => await ParseFileAsync(message), TStagingQueue.OfflocCleaner);
}, stoppingToken);
}
@@ -32,19 +32,19 @@ private async Task ParseFileAsync(OfflocDownloadFinished message)
if (await HasAlreadyBeenProcessedAsync(file))
{
- statusService.StatusPublish(new StatusUpdateMessage($"File {file} has already been processed"));
- stagingService.StagingPublish(new OfflocParserFinishedMessage("File already processed", true));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"File {file} has already been processed"));
+ await stagingService.StagingPublishAsync(new OfflocParserFinishedMessage("File already processed", true));
}
else
{
var request = new OfflocFileProcessingStarted(message.fileName, message.FileId, message.ArchiveFileName);
- await dbService.SendDbRequestAndWaitForResponse(request);
+ await dbService.SendDbRequestAndWaitForResponseAsync(request);
await cleaningService.CleanFile(file);
}
}
private async Task HasAlreadyBeenProcessedAsync(string file)
{
- var res = await dbService.SendDbRequestAndWaitForResponse(new GetOfflocFilesMessage());
+ var res = await dbService.SendDbRequestAndWaitForResponseAsync(new GetOfflocFilesMessage());
return res.offlocFiles.Contains(file);
}
}
diff --git a/src/Offloc.Cleaner/Program.cs b/src/Offloc.Cleaner/Program.cs
index 51e6364..ede2a27 100644
--- a/src/Offloc.Cleaner/Program.cs
+++ b/src/Offloc.Cleaner/Program.cs
@@ -31,9 +31,14 @@
builder.Services.AddSingleton();
builder.Services.ConfigureServices(builder.Configuration);
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
+ builder.Services.AddSingleton(sp =>
+ {
+ var rabbitContext = sp.GetRequiredService();
+ return RabbitService.CreateAsync(rabbitContext).GetAwaiter().GetResult();
+ });
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
builder.Services.AddHostedService();
diff --git a/src/Offloc.Cleaner/Services/SequentialCleaningStrategy.cs b/src/Offloc.Cleaner/Services/SequentialCleaningStrategy.cs
index c7fd251..add9f8a 100644
--- a/src/Offloc.Cleaner/Services/SequentialCleaningStrategy.cs
+++ b/src/Offloc.Cleaner/Services/SequentialCleaningStrategy.cs
@@ -16,9 +16,9 @@ public class SequentialCleaningStrategy : CleaningStrategyBase, ICleaningStrateg
public async Task CleanFile(string file)
{
- statusService.StatusPublish(new StatusUpdateMessage($"Cleaning file: {file}"));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"Cleaning file: {file}"));
await base.ProcessFile(Path.Combine(fileLocations.offlocInput, file));
- stagingService.StagingPublish(new OfflocCleanerFinishedMessage([file], redundantFieldIndexes));
+ await stagingService.StagingPublishAsync(new OfflocCleanerFinishedMessage([file], redundantFieldIndexes));
}
}
\ No newline at end of file
diff --git a/src/Offloc.Parser/Dockerfile b/src/Offloc.Parser/Dockerfile
deleted file mode 100644
index 3e2ae27..0000000
--- a/src/Offloc.Parser/Dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
-
-FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base
-WORKDIR /app
-
-FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
-WORKDIR /src
-COPY ["src/Offloc.Parser/Offloc.Parser.csproj", "src/Offloc.Parser/"]
-COPY ["src/Messaging/Messaging.csproj", "src/Messaging/"]
-
-RUN dotnet restore "src/Offloc.Parser/Offloc.Parser.csproj"
-COPY . .
-WORKDIR "/src/src/Offloc.Parser"
-RUN dotnet build "Offloc.Parser.csproj" -c Release -o /app/build
-
-FROM build AS publish
-RUN dotnet publish "Offloc.Parser.csproj" -c Release -o /app/publish /p:UseAppHost=false
-
-FROM base AS final
-WORKDIR /app
-COPY --from=publish /app/publish .
-ENTRYPOINT ["dotnet", "Offloc.Parser.dll"]
\ No newline at end of file
diff --git a/src/Offloc.Parser/Offloc.Parser.csproj b/src/Offloc.Parser/Offloc.Parser.csproj
index 8f804e8..4c0d382 100644
--- a/src/Offloc.Parser/Offloc.Parser.csproj
+++ b/src/Offloc.Parser/Offloc.Parser.csproj
@@ -14,8 +14,8 @@
-
-
+
+
diff --git a/src/Offloc.Parser/OfflocParserBackgroundService.cs b/src/Offloc.Parser/OfflocParserBackgroundService.cs
index 41a07f6..32c9931 100644
--- a/src/Offloc.Parser/OfflocParserBackgroundService.cs
+++ b/src/Offloc.Parser/OfflocParserBackgroundService.cs
@@ -25,7 +25,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await Task.CompletedTask;
- messageService.StagingSubscribe(async(message) =>
+ messageService.StagingSubscribeAsync(async(message) =>
{
//For parallel processing, the file id is insignificant.
//For sequential processing, filesToParse is always of length 1.
diff --git a/src/Offloc.Parser/Program.cs b/src/Offloc.Parser/Program.cs
index 4b8aee5..ee40367 100644
--- a/src/Offloc.Parser/Program.cs
+++ b/src/Offloc.Parser/Program.cs
@@ -32,8 +32,13 @@
builder.Services.AddSingleton(builder.Configuration);
builder.Services.ConfigureServices(builder.Configuration);
- builder.Services.AddSingleton();
- builder.Services.AddSingleton();
+ builder.Services.AddSingleton(sp =>
+ {
+ var rabbitContext = sp.GetRequiredService();
+ return RabbitService.CreateAsync(rabbitContext).GetAwaiter().GetResult();
+ });
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
+ builder.Services.AddSingleton(sp => sp.GetRequiredService());
builder.Services.AddSingleton();
//builder.Services.AddSingleton();
diff --git a/src/Offloc.Parser/Services/ParsingStrategy/ParsingStrategyBase.cs b/src/Offloc.Parser/Services/ParsingStrategy/ParsingStrategyBase.cs
index c90f462..b216414 100644
--- a/src/Offloc.Parser/Services/ParsingStrategy/ParsingStrategyBase.cs
+++ b/src/Offloc.Parser/Services/ParsingStrategy/ParsingStrategyBase.cs
@@ -26,7 +26,7 @@ public ParsingStrategyBase(IStagingMessagingService stagingService, IStatusMessa
protected async Task ParseFile(string fileName)
{
- statusService.StatusPublish(new StatusUpdateMessage($"Offloc parser started for file {fileName.Split('/').Last()}."));
+ await statusService.StatusPublishAsync(new StatusUpdateMessage($"Offloc parser started for file {fileName.Split('/').Last()}."));
OfflocProcessor op = new OfflocProcessor(fileName, $"{fileLocations.offlocOutput}/{fileName.Split('/').Last()}", trimmerContext);
await op.Process();
diff --git a/src/Offloc.Parser/Services/ParsingStrategy/SequentialParsingStrategy.cs b/src/Offloc.Parser/Services/ParsingStrategy/SequentialParsingStrategy.cs
index 8bb445f..a619025 100644
--- a/src/Offloc.Parser/Services/ParsingStrategy/SequentialParsingStrategy.cs
+++ b/src/Offloc.Parser/Services/ParsingStrategy/SequentialParsingStrategy.cs
@@ -25,7 +25,7 @@ public async Task ParseFiles(string[] files)
await sem.WaitAsync();
await ParseFile(fileLocations.offlocInput + '/' + files[0]);
- stagingService.StagingPublish(new OfflocParserFinishedMessage(files[0].Split('/').Last(), false));
+ await stagingService.StagingPublishAsync(new OfflocParserFinishedMessage(files[0].Split('/').Last(), false));
sem.Release();
}
diff --git a/src/Api.Tests/Api.Tests.csproj b/tests/Api.Tests/Api.Tests.csproj
similarity index 90%
rename from src/Api.Tests/Api.Tests.csproj
rename to tests/Api.Tests/Api.Tests.csproj
index 0b6e362..044e43b 100644
--- a/src/Api.Tests/Api.Tests.csproj
+++ b/tests/Api.Tests/Api.Tests.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/src/Api.Tests/CandidateTests.cs b/tests/Api.Tests/CandidateTests.cs
similarity index 100%
rename from src/Api.Tests/CandidateTests.cs
rename to tests/Api.Tests/CandidateTests.cs