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