using DigitalData.EmailProfiler.Application.Common.Interfaces;
using DigitalData.EmailProfiler.Infrastructure.Messaging;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace DigitalData.EmailProfiler.Infrastructure;
///
/// Dependency injection configuration for Infrastructure layer
///
public static class DependencyInjection
{
///
/// Adds Infrastructure layer services to the DI container
///
public static IServiceCollection AddInfrastructure(
this IServiceCollection services,
IConfiguration configuration)
{
// Register RabbitMQ configuration
services.Configure(
configuration.GetSection(RabbitMqConfiguration.SectionName));
// Register RabbitMQ command publisher
services.AddSingleton();
// Register RabbitMQ command consumer as hosted service
services.AddHostedService();
return services;
}
}