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; } } }