Simplify Publisher DI by removing Configuration wrapper class

This commit is contained in:
2026-07-28 14:33:41 +02:00
parent a38e8f9680
commit e8359abafd

View File

@@ -7,32 +7,14 @@ namespace DigitalData.MessagingService.Publisher;
public static class DependencyInjection public static class DependencyInjection
{ {
public static IServiceCollection AddMessagingServicePublisher(this IServiceCollection services, Action<Configuration>? configure = null) public static IServiceCollection AddMessagingServicePublisher(this IServiceCollection services, Action<RabbitMqConfiguration>? configure = null)
{ {
if(configure is not null) if(configure is not null)
{ services.AddRabbitMqConnectionFactory(configure);
var configuration = new Configuration(services);
configure(configuration);
}
// --- Email Queue (RabbitMQ) --- // --- Email Queue (RabbitMQ) ---
services.AddSingleton<IOutgoingEmailPublisher, OutgoingEmailPublisher>(); services.AddSingleton<IOutgoingEmailPublisher, OutgoingEmailPublisher>();
return services; return services;
} }
public class Configuration
{
private readonly IServiceCollection _services;
internal Configuration(IServiceCollection services)
{
_services = services;
}
public Configuration AddRabbitMqConnectionFactory(IConfiguration configuration)
{
_services.AddRabbitMqConnectionFactory(configuration);
return this;
}
}
} }