diff --git a/src/infrastructure/DigitalData.MessagingService.Infrastructure/DependencyInjection/MessagingServiceInfrastructureConfiguration.cs b/src/infrastructure/DigitalData.MessagingService.Infrastructure/DependencyInjection/MessagingServiceInfrastructureConfiguration.cs index 73287d2..b49f80a 100644 --- a/src/infrastructure/DigitalData.MessagingService.Infrastructure/DependencyInjection/MessagingServiceInfrastructureConfiguration.cs +++ b/src/infrastructure/DigitalData.MessagingService.Infrastructure/DependencyInjection/MessagingServiceInfrastructureConfiguration.cs @@ -28,14 +28,14 @@ public class MessagingServiceInfrastructureConfiguration } } - public MessagingServiceInfrastructureConfiguration AddRabbitMqConnectionFactory(Action configure) + public MessagingServiceInfrastructureConfiguration AddRabbitMqConnectionFactory(Action configure) { Services.AddRabbitMqConnectionFactory(configure); _configured.RabbitMqConnectionFactory = true; return this; } - public MessagingServiceInfrastructureConfiguration AddRabbitMqConnectionFactory(IConfiguration configuration, string sectionName = RabbitMqConfiguration.SectionName) + public MessagingServiceInfrastructureConfiguration AddRabbitMqConnectionFactory(IConfiguration configuration, string sectionName = RabbitMqConnectionConfiguration.SectionName) { Services.AddRabbitMqConnectionFactory(configuration, sectionName); _configured.RabbitMqConnectionFactory = true; @@ -57,5 +57,4 @@ public class MessagingServiceInfrastructureConfiguration return this; } #endregion EmailAccountsOptions - } diff --git a/src/infrastructure/DigitalData.MessagingService.Infrastructure/Queue/SendingEmailConsumerPool.cs b/src/infrastructure/DigitalData.MessagingService.Infrastructure/Queue/SendingEmailConsumerPool.cs index 7242eec..f8659fd 100644 --- a/src/infrastructure/DigitalData.MessagingService.Infrastructure/Queue/SendingEmailConsumerPool.cs +++ b/src/infrastructure/DigitalData.MessagingService.Infrastructure/Queue/SendingEmailConsumerPool.cs @@ -17,7 +17,7 @@ public sealed class SendingEmailConsumerPool : IAsyncDisposable private readonly int _concurrency; public SendingEmailConsumerPool( - IOptions config, + IOptions config, IEmailService emailService, IServiceScopeFactory scopeFactory, RabbitMqConnectionFactory cnnFactory, diff --git a/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/Background/ConsumerInitWorker.cs b/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/Background/ConsumerInitWorker.cs index 046877b..47ab803 100644 --- a/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/Background/ConsumerInitWorker.cs +++ b/src/infrastructure/DigitalData.MessagingService.Infrastructure/Services/Background/ConsumerInitWorker.cs @@ -14,7 +14,7 @@ namespace DigitalData.MessagingService.Infrastructure.Services.Background; public class ConsumerInitWorker( SendingEmailConsumerPool ConsumerPool, ILogger Logger, - IOptions RabbitMqOptions, + IOptions RabbitMqOptions, ConsumerInitHealthCheck HealthCheck) : BackgroundService { protected override async Task ExecuteAsync(CancellationToken stoppingToken) diff --git a/src/infrastructure/DigitalData.MessagingService.Publisher/SendingEmailPublisher.cs b/src/infrastructure/DigitalData.MessagingService.Publisher/SendingEmailPublisher.cs index dd630e8..9be1fdf 100644 --- a/src/infrastructure/DigitalData.MessagingService.Publisher/SendingEmailPublisher.cs +++ b/src/infrastructure/DigitalData.MessagingService.Publisher/SendingEmailPublisher.cs @@ -16,12 +16,12 @@ namespace DigitalData.MessagingService.Publisher; /// public sealed class SendingEmailPublisher : ISendingEmailPublisher, IAsyncDisposable { - private readonly RabbitMqConfiguration _config; + private readonly RabbitMqConnectionConfiguration _config; private readonly ILogger _logger; private readonly RabbitMqConnectionFactory _cnnFactory; private readonly Lazy> _lazyChannel; - public SendingEmailPublisher(IOptions config, ILogger logger, RabbitMqConnectionFactory cnnFactory) + public SendingEmailPublisher(IOptions config, ILogger logger, RabbitMqConnectionFactory cnnFactory) { _config = config.Value; _logger = logger; diff --git a/src/infrastructure/DigitalData.MessagingService.RabbitMQ/DependencyInjection.cs b/src/infrastructure/DigitalData.MessagingService.RabbitMQ/DependencyInjection.cs index 8b4176a..0948da2 100644 --- a/src/infrastructure/DigitalData.MessagingService.RabbitMQ/DependencyInjection.cs +++ b/src/infrastructure/DigitalData.MessagingService.RabbitMQ/DependencyInjection.cs @@ -9,36 +9,26 @@ namespace DigitalData.MessagingService.RabbitMQ /// 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) + public static IServiceCollection AddRabbitMqConnectionFactory(this IServiceCollection services, Action configure) { - services.AddDefaultServices(); - // --- RabbitMQ Configuration --- services.Configure(configure); - return services; + return services.AddSingleton(); } /// /// Adds Infrastructure layer services to the DI container /// - public static IServiceCollection AddRabbitMqConnectionFactory(this IServiceCollection services, IConfiguration configuration, string sectionName = RabbitMqConfiguration.SectionName) + public static IServiceCollection AddRabbitMqConnectionFactory(this IServiceCollection services, IConfiguration configuration, string sectionName = RabbitMqConnectionConfiguration.SectionName) { - services.AddDefaultServices(); - // --- RabbitMQ Configuration --- - services.Configure(configuration.GetSection(sectionName)); + services.Configure(configuration.GetSection(sectionName)); - return services; + return services.AddSingleton(); } } } \ No newline at end of file diff --git a/src/infrastructure/DigitalData.MessagingService.RabbitMQ/RabbitMqConfiguration.cs b/src/infrastructure/DigitalData.MessagingService.RabbitMQ/RabbitMqConnectionConfiguration.cs similarity index 98% rename from src/infrastructure/DigitalData.MessagingService.RabbitMQ/RabbitMqConfiguration.cs rename to src/infrastructure/DigitalData.MessagingService.RabbitMQ/RabbitMqConnectionConfiguration.cs index 076f088..0bee47c 100644 --- a/src/infrastructure/DigitalData.MessagingService.RabbitMQ/RabbitMqConfiguration.cs +++ b/src/infrastructure/DigitalData.MessagingService.RabbitMQ/RabbitMqConnectionConfiguration.cs @@ -3,7 +3,7 @@ namespace DigitalData.MessagingService.RabbitMQ /// /// Configuration for RabbitMQ connection /// - public class RabbitMqConfiguration + public class RabbitMqConnectionConfiguration { /// /// Configuration section name in appsettings.json diff --git a/src/infrastructure/DigitalData.MessagingService.RabbitMQ/RabbitMqConnectionFactory.cs b/src/infrastructure/DigitalData.MessagingService.RabbitMQ/RabbitMqConnectionFactory.cs index ff5df33..c321706 100644 --- a/src/infrastructure/DigitalData.MessagingService.RabbitMQ/RabbitMqConnectionFactory.cs +++ b/src/infrastructure/DigitalData.MessagingService.RabbitMQ/RabbitMqConnectionFactory.cs @@ -12,7 +12,7 @@ namespace DigitalData.MessagingService.RabbitMQ { private readonly CancellationTokenSource _consumerCts = new CancellationTokenSource(); - private readonly RabbitMqConfiguration _config; + private readonly RabbitMqConnectionConfiguration _config; private readonly ILogger #if nullable @@ -41,7 +41,7 @@ namespace DigitalData.MessagingService.RabbitMQ return new AsyncEventingBasicConsumer(channel); } - public RabbitMqConnectionFactory(IOptions config) + public RabbitMqConnectionFactory(IOptions config) { _config = config.Value; _lazyConnectionProvider = new Lazy>(async () => diff --git a/src/presentation/DigitalData.MessagingService.Client/OnReconnect.cs b/src/presentation/DigitalData.MessagingService.Client/OnReconnect.cs index 631eb0b..583154c 100644 --- a/src/presentation/DigitalData.MessagingService.Client/OnReconnect.cs +++ b/src/presentation/DigitalData.MessagingService.Client/OnReconnect.cs @@ -1,7 +1,7 @@ namespace DigitalData.MessagingService.Client; /// -/// Defines the behavior when is called +/// Defines the behavior when is called /// while a connection has already been established. /// public enum OnReconnect diff --git a/tests/DigitalData.MessagingService.Tests/RabbitMqTestConfig.cs b/tests/DigitalData.MessagingService.Tests/RabbitMqTestConfig.cs index 2a27fb7..8e8d4c3 100644 --- a/tests/DigitalData.MessagingService.Tests/RabbitMqTestConfig.cs +++ b/tests/DigitalData.MessagingService.Tests/RabbitMqTestConfig.cs @@ -21,7 +21,7 @@ internal static class RabbitMqTestConfig public const string DlqExchangeName = "emailprofiler.emails.dlq"; public const string DlqRoutingKey = "email.outbox.dlq"; - public static void Apply(RabbitMqConfiguration cfg) + public static void Apply(RabbitMqConnectionConfiguration cfg) { cfg.HostName = HostName; cfg.Port = Port; diff --git a/tests/DigitalData.MessagingService.Tests/Unit/EmailSenderUrlParsingTests.cs b/tests/DigitalData.MessagingService.Tests/Unit/EmailSenderUrlParsingTests.cs index 595a8ae..7f8ccd7 100644 --- a/tests/DigitalData.MessagingService.Tests/Unit/EmailSenderUrlParsingTests.cs +++ b/tests/DigitalData.MessagingService.Tests/Unit/EmailSenderUrlParsingTests.cs @@ -11,12 +11,12 @@ public sealed class EmailSenderUrlParsingTests { /// /// Applies the same URL-parsing logic used by the URL overload to a fresh - /// and returns it for assertion. + /// and returns it for assertion. /// - private static RabbitMqConfiguration ParseUrl(string url, string username, string password) + private static RabbitMqConnectionConfiguration ParseUrl(string url, string username, string password) { var uri = new Uri(url); - var cfg = new RabbitMqConfiguration(); + var cfg = new RabbitMqConnectionConfiguration(); cfg.HostName = uri.Host; cfg.Port = uri.IsDefaultPort ? 5672 : uri.Port; @@ -95,7 +95,7 @@ public sealed class EmailSenderUrlParsingTests [Fact] public void ParseUrl_WithRootPath_DoesNotOverrideVirtualHost() { - var defaultVHost = new RabbitMqConfiguration().VirtualHost; + var defaultVHost = new RabbitMqConnectionConfiguration().VirtualHost; var cfg = ParseUrl("amqp://broker:5672/", "user", "pass"); Assert.Equal(defaultVHost, cfg.VirtualHost); @@ -104,7 +104,7 @@ public sealed class EmailSenderUrlParsingTests [Fact] public void ParseUrl_WithoutPath_DoesNotOverrideVirtualHost() { - var defaultVHost = new RabbitMqConfiguration().VirtualHost; + var defaultVHost = new RabbitMqConnectionConfiguration().VirtualHost; var cfg = ParseUrl("amqp://broker:5672", "user", "pass"); Assert.Equal(defaultVHost, cfg.VirtualHost);