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