Refactor LicenseManager registration with factory

Replaces transient LicenseManager registration (with per-injection license key retrieval via MediatR) with a singleton LicenseManagerFactory. This centralizes license management and may improve performance and maintainability.
This commit is contained in:
2026-04-14 21:05:21 +02:00
parent a3f404b9ae
commit cb7d154f64

View File

@@ -1,8 +1,6 @@
using EnvelopeGenerator.Application.ThirdPartyModules.Queries;
using EnvelopeGenerator.ServiceHost.Jobs; using EnvelopeGenerator.ServiceHost.Jobs;
using EnvelopeGenerator.ServiceHost.Jobs.FinalizeDocument; using EnvelopeGenerator.ServiceHost.Jobs.FinalizeDocument;
using GdPicture14; using GdPicture14;
using MediatR;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
namespace EnvelopeGenerator.ServiceHost.Extensions; namespace EnvelopeGenerator.ServiceHost.Extensions;
@@ -28,16 +26,7 @@ public static class DependencyInjection
//TODO: Check lifetime of services. They might be singleton or scoped. //TODO: Check lifetime of services. They might be singleton or scoped.
services.AddTransient<GdViewer>(); services.AddTransient<GdViewer>();
// Add LicenseManager license key is read from DB via MediatR services.AddSingleton<LicenseManagerFactory>();
services.AddTransient(provider =>
{
using var scope = provider.CreateScope();
var mediator = scope.ServiceProvider.GetRequiredService<IMediator>();
var licenseKey = mediator.Send(new ReadThirdPartyModuleLicenseQuery { Name = "GdPicture" }).GetAwaiter().GetResult();
var licenseManager = new LicenseManager();
licenseManager.RegisterKEY(licenseKey);
return licenseManager;
});
services.AddTransient<AnnotationManager>(); services.AddTransient<AnnotationManager>();
return services; return services;