Integration von RemoveIfControllerConvention zur bedingten Ausschließung von Test-Controllern

Implementierung von RemoveIfControllerConvention in der Startup-Klasse, um Controller, die mit "Test" beginnen, basierend auf einem Konfigurationsflag auszuschließen, was die Flexibilität der Dienstregistrierung erhöht.
This commit is contained in:
Developer 02
2024-04-09 13:52:38 +02:00
parent 6941a3db8d
commit 2c17d440c0
21 changed files with 70 additions and 49 deletions

View File

@@ -10,6 +10,7 @@ using Microsoft.EntityFrameworkCore;
using NLog;
using Quartz;
using NLog.Web;
using DigitalData.Core.API;
var logger = LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
logger.Info("Logging initialized!");
@@ -27,7 +28,12 @@ try
builder.Services.AddScoped<EnvelopeOldService>();
// Add services to the container.
builder.Services.AddControllersWithViews().AddJsonOptions(q =>
builder.Services.AddControllersWithViews(options =>
{
options.Conventions.Add(new RemoveIfControllerConvention()
.AndIf(c => c.ControllerName.StartsWith("Test"))
.AndIf(c => !builder.Configuration.GetValue<bool>("AddTestControllers")));
}).AddJsonOptions(q =>
{
// Prevents serialization error when serializing SvgBitmap in EnvelopeReceiver
q.JsonSerializerOptions.ReferenceHandler = System.Text.Json.Serialization.ReferenceHandler.IgnoreCycles;
@@ -76,7 +82,7 @@ try
//Auto mapping profiles
builder.Services.AddAutoMapper(typeof(BasicDtoMappingProfile).Assembly);
var app = builder.Build();
// Configure the HTTP request pipeline.