Simplify Publisher DI by removing Configuration wrapper class
This commit is contained in:
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user