diff --git a/src/DigitalData.EmailProfiler.API/Program.cs b/src/DigitalData.EmailProfiler.API/Program.cs index e64d333..6bbf8cf 100644 --- a/src/DigitalData.EmailProfiler.API/Program.cs +++ b/src/DigitalData.EmailProfiler.API/Program.cs @@ -38,7 +38,7 @@ try builder.Configuration.AddJsonFile("appsettings.Secrets.json", optional: true, reloadOnChange: true); // Register Application layer (MediatR, AutoMapper, FluentValidation) - builder.Services.AddApplicationServices(); + builder.Services.AddApplicationServices(builder.Configuration); // Register Infrastructure layer (RabbitMQ, Repositories, etc.) builder.Services.AddInfrastructure(builder.Configuration); diff --git a/src/DigitalData.EmailProfiler.Application/DependencyInjection.cs b/src/DigitalData.EmailProfiler.Application/DependencyInjection.cs index 52d918d..13176bc 100644 --- a/src/DigitalData.EmailProfiler.Application/DependencyInjection.cs +++ b/src/DigitalData.EmailProfiler.Application/DependencyInjection.cs @@ -1,5 +1,6 @@ using System.Reflection; using FluentValidation; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; namespace DigitalData.EmailProfiler.Application; @@ -9,18 +10,27 @@ namespace DigitalData.EmailProfiler.Application; /// public static class DependencyInjection { - public static IServiceCollection AddApplicationServices(this IServiceCollection services) + public static IServiceCollection AddApplicationServices(this IServiceCollection services, IConfiguration configuration) { var assembly = Assembly.GetExecutingAssembly(); + // Read LuckyPennySoft license key from appsettings.json + var licenseKey = configuration.GetValue("LuckyPennySoftLicenseKey") + ?? throw new InvalidOperationException("LuckyPennySoftLicenseKey not found in configuration"); + // MediatR - Register all handlers services.AddMediatR(config => { + config.LicenseKey = licenseKey; config.RegisterServicesFromAssembly(assembly); }); - // AutoMapper - Register all profiles - services.AddAutoMapper(assembly); + // AutoMapper - Use built-in DI extension (AutoMapper 16.2.0+) + services.AddAutoMapper(config => + { + config.LicenseKey = licenseKey; + config.AddMaps(assembly); + }); // FluentValidation - Register all validators services.AddValidatorsFromAssembly(assembly);