45 lines
1.5 KiB
C#
45 lines
1.5 KiB
C#
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using System;
|
|
|
|
namespace DigitalData.MessagingService.RabbitMQ
|
|
{
|
|
/// <summary>
|
|
/// Dependency injection configuration for Infrastructure layer
|
|
/// </summary>
|
|
public static class DependencyInjection
|
|
{
|
|
private static IServiceCollection AddDefaultServices(this IServiceCollection services)
|
|
{
|
|
services.AddSingleton<RabbitMqConnectionFactory>();
|
|
return services;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Adds Infrastructure layer services to the DI container
|
|
/// </summary>
|
|
public static IServiceCollection AddRabbitMqConnectionFactory(this IServiceCollection services, Action<RabbitMqConfiguration> configure)
|
|
{
|
|
services.AddDefaultServices();
|
|
|
|
// --- RabbitMQ Configuration ---
|
|
services.Configure(configure);
|
|
|
|
return services;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Adds Infrastructure layer services to the DI container
|
|
/// </summary>
|
|
public static IServiceCollection AddRabbitMqConnectionFactory(this IServiceCollection services, IConfiguration configuration)
|
|
{
|
|
services.AddDefaultServices();
|
|
|
|
// --- RabbitMQ Configuration ---
|
|
services.Configure<RabbitMqConfiguration>(
|
|
configuration.GetSection(RabbitMqConfiguration.SectionName));
|
|
|
|
return services;
|
|
}
|
|
}
|
|
} |