diff --git a/.vs/DigitalData.Core/DesignTimeBuild/.dtbcache.v2 b/.vs/DigitalData.Core/DesignTimeBuild/.dtbcache.v2
index 464a2d8..f46574a 100644
Binary files a/.vs/DigitalData.Core/DesignTimeBuild/.dtbcache.v2 and b/.vs/DigitalData.Core/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/.vs/DigitalData.Core/FileContentIndex/2b147645-d608-4cfd-923a-96be42fff33d.vsidx b/.vs/DigitalData.Core/FileContentIndex/2b147645-d608-4cfd-923a-96be42fff33d.vsidx
new file mode 100644
index 0000000..ad8c66f
Binary files /dev/null and b/.vs/DigitalData.Core/FileContentIndex/2b147645-d608-4cfd-923a-96be42fff33d.vsidx differ
diff --git a/.vs/DigitalData.Core/FileContentIndex/157cbd8b-67e1-4543-bc56-bf96ecb90cf1.vsidx b/.vs/DigitalData.Core/FileContentIndex/645d985b-6b29-4701-9a8e-6b55fd86bdbe.vsidx
similarity index 100%
rename from .vs/DigitalData.Core/FileContentIndex/157cbd8b-67e1-4543-bc56-bf96ecb90cf1.vsidx
rename to .vs/DigitalData.Core/FileContentIndex/645d985b-6b29-4701-9a8e-6b55fd86bdbe.vsidx
diff --git a/.vs/DigitalData.Core/FileContentIndex/92b37400-7a5f-4cb8-9a7b-2b13a340c4e7.vsidx b/.vs/DigitalData.Core/FileContentIndex/92b37400-7a5f-4cb8-9a7b-2b13a340c4e7.vsidx
deleted file mode 100644
index 9e1d637..0000000
Binary files a/.vs/DigitalData.Core/FileContentIndex/92b37400-7a5f-4cb8-9a7b-2b13a340c4e7.vsidx and /dev/null differ
diff --git a/.vs/DigitalData.Core/FileContentIndex/16be27ac-f1dc-40b0-927a-d06761c2caf1.vsidx b/.vs/DigitalData.Core/FileContentIndex/9698441e-9a42-40fe-96e7-9d4b9a949741.vsidx
similarity index 50%
rename from .vs/DigitalData.Core/FileContentIndex/16be27ac-f1dc-40b0-927a-d06761c2caf1.vsidx
rename to .vs/DigitalData.Core/FileContentIndex/9698441e-9a42-40fe-96e7-9d4b9a949741.vsidx
index 241584a..b668177 100644
Binary files a/.vs/DigitalData.Core/FileContentIndex/16be27ac-f1dc-40b0-927a-d06761c2caf1.vsidx and b/.vs/DigitalData.Core/FileContentIndex/9698441e-9a42-40fe-96e7-9d4b9a949741.vsidx differ
diff --git a/.vs/DigitalData.Core/FileContentIndex/bf263ce9-adcc-436a-8527-9510c4e379d2.vsidx b/.vs/DigitalData.Core/FileContentIndex/c04a7127-2a42-4549-9194-660339e9f4dd.vsidx
similarity index 97%
rename from .vs/DigitalData.Core/FileContentIndex/bf263ce9-adcc-436a-8527-9510c4e379d2.vsidx
rename to .vs/DigitalData.Core/FileContentIndex/c04a7127-2a42-4549-9194-660339e9f4dd.vsidx
index 5d03303..fbebf9a 100644
Binary files a/.vs/DigitalData.Core/FileContentIndex/bf263ce9-adcc-436a-8527-9510c4e379d2.vsidx and b/.vs/DigitalData.Core/FileContentIndex/c04a7127-2a42-4549-9194-660339e9f4dd.vsidx differ
diff --git a/.vs/DigitalData.Core/v17/.futdcache.v2 b/.vs/DigitalData.Core/v17/.futdcache.v2
index 011cf21..beb3dbf 100644
Binary files a/.vs/DigitalData.Core/v17/.futdcache.v2 and b/.vs/DigitalData.Core/v17/.futdcache.v2 differ
diff --git a/.vs/DigitalData.Core/v17/.suo b/.vs/DigitalData.Core/v17/.suo
index addab17..865a93c 100644
Binary files a/.vs/DigitalData.Core/v17/.suo and b/.vs/DigitalData.Core/v17/.suo differ
diff --git a/.vs/ProjectEvaluation/digitaldata.core.metadata.v6.1 b/.vs/ProjectEvaluation/digitaldata.core.metadata.v6.1
index 0e96a28..4bc591b 100644
Binary files a/.vs/ProjectEvaluation/digitaldata.core.metadata.v6.1 and b/.vs/ProjectEvaluation/digitaldata.core.metadata.v6.1 differ
diff --git a/.vs/ProjectEvaluation/digitaldata.core.projects.v6.1 b/.vs/ProjectEvaluation/digitaldata.core.projects.v6.1
index 6dd1464..cd7f510 100644
Binary files a/.vs/ProjectEvaluation/digitaldata.core.projects.v6.1 and b/.vs/ProjectEvaluation/digitaldata.core.projects.v6.1 differ
diff --git a/DigitalData.Core.API/BasicCRUDControllerBase.cs b/DigitalData.Core.API/BasicCRUDControllerBase.cs
index 2856b96..bd064cd 100644
--- a/DigitalData.Core.API/BasicCRUDControllerBase.cs
+++ b/DigitalData.Core.API/BasicCRUDControllerBase.cs
@@ -1,7 +1,6 @@
using DigitalData.Core.Contracts.Application;
using DigitalData.Core.Contracts.Infrastructure;
using Microsoft.AspNetCore.Mvc;
-using System.Security.Cryptography;
namespace DigitalData.Core.API
{
diff --git a/DigitalData.Core.API/RemoveIfControllerConvention.cs b/DigitalData.Core.API/RemoveIfControllerConvention.cs
new file mode 100644
index 0000000..6170c88
--- /dev/null
+++ b/DigitalData.Core.API/RemoveIfControllerConvention.cs
@@ -0,0 +1,47 @@
+using Microsoft.AspNetCore.Mvc.ApplicationModels;
+
+namespace DigitalData.Core.API
+{
+ ///
+ /// Provides a convention to remove controllers from the application based on specified conditions.
+ ///
+ public class RemoveIfControllerConvention : IApplicationModelConvention
+ {
+ ///
+ /// A list of conditions that determine if a controller should be removed.
+ ///
+ private readonly List> _andIfConditions = new();
+
+ ///
+ /// Applies the convention to the application, removing controllers that meet all specified conditions.
+ ///
+ /// The application model representing the MVC application.
+ public void Apply(ApplicationModel application)
+ {
+ List controllersToRemove = new();
+
+ // Iterate over all controllers in the application.
+ foreach (var controller in application.Controllers)
+ {
+ // If all conditions are met for this controller, mark it for removal.
+ if (_andIfConditions.All(condition => condition(controller)))
+ controllersToRemove.Add(controller);
+ }
+
+ // Remove the controllers that met all conditions.
+ foreach (var controllerToRemove in controllersToRemove)
+ application.Controllers.Remove(controllerToRemove);
+ }
+
+ ///
+ /// Adds a new condition to the list of conditions that a controller must meet to be removed.
+ ///
+ /// The condition that determines if a controller should be removed.
+ /// The current instance of to allow for method chaining.
+ public RemoveIfControllerConvention AndIf(Func condition)
+ {
+ _andIfConditions.Add(condition);
+ return this;
+ }
+ }
+}
\ No newline at end of file
diff --git a/DigitalData.Core.API/bin/Debug/net7.0/DigitalData.Core.API.dll b/DigitalData.Core.API/bin/Debug/net7.0/DigitalData.Core.API.dll
index 7234aeb..aa558fe 100644
Binary files a/DigitalData.Core.API/bin/Debug/net7.0/DigitalData.Core.API.dll and b/DigitalData.Core.API/bin/Debug/net7.0/DigitalData.Core.API.dll differ
diff --git a/DigitalData.Core.API/bin/Debug/net7.0/DigitalData.Core.API.pdb b/DigitalData.Core.API/bin/Debug/net7.0/DigitalData.Core.API.pdb
index 93aeaca..a211e63 100644
Binary files a/DigitalData.Core.API/bin/Debug/net7.0/DigitalData.Core.API.pdb and b/DigitalData.Core.API/bin/Debug/net7.0/DigitalData.Core.API.pdb differ
diff --git a/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.csproj.CoreCompileInputs.cache b/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.csproj.CoreCompileInputs.cache
index aa5cfc6..edde340 100644
--- a/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.csproj.CoreCompileInputs.cache
+++ b/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-2221c1ecef1ac9eb27bf4ae97a33977f72178fae
+59f2783e50792a73219c75f235364a0eca9fd664
diff --git a/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.dll b/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.dll
index 7234aeb..aa558fe 100644
Binary files a/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.dll and b/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.dll differ
diff --git a/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.pdb b/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.pdb
index 93aeaca..a211e63 100644
Binary files a/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.pdb and b/DigitalData.Core.API/obj/Debug/net7.0/DigitalData.Core.API.pdb differ
diff --git a/DigitalData.Core.API/obj/Debug/net7.0/ref/DigitalData.Core.API.dll b/DigitalData.Core.API/obj/Debug/net7.0/ref/DigitalData.Core.API.dll
index 073de01..e005495 100644
Binary files a/DigitalData.Core.API/obj/Debug/net7.0/ref/DigitalData.Core.API.dll and b/DigitalData.Core.API/obj/Debug/net7.0/ref/DigitalData.Core.API.dll differ
diff --git a/DigitalData.Core.API/obj/Debug/net7.0/refint/DigitalData.Core.API.dll b/DigitalData.Core.API/obj/Debug/net7.0/refint/DigitalData.Core.API.dll
index 073de01..e005495 100644
Binary files a/DigitalData.Core.API/obj/Debug/net7.0/refint/DigitalData.Core.API.dll and b/DigitalData.Core.API/obj/Debug/net7.0/refint/DigitalData.Core.API.dll differ