diff --git a/src/Infrastructure.EventBus/RabbitMQ/RabbitMQEventBus.cs b/src/Infrastructure.EventBus/RabbitMQ/RabbitMQEventBus.cs index 8c5b967..c6e5cf3 100644 --- a/src/Infrastructure.EventBus/RabbitMQ/RabbitMQEventBus.cs +++ b/src/Infrastructure.EventBus/RabbitMQ/RabbitMQEventBus.cs @@ -21,21 +21,21 @@ public class RabbitMQEventBus : IEventBus private readonly ILogger _logger; - private IModel _consumerChannel; + private IModel? _consumerChannel; public RabbitMQEventBus( IPersistentConnection persistentConnection, IEventBusSubscriptionManager subscriptionsManager, IServiceProvider serviceProvider, ILogger logger, - string exchangeName, + string brokerName, string queueName) { _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection)); _subscriptionsManager = subscriptionsManager ?? throw new ArgumentNullException(nameof(subscriptionsManager)); _serviceProvider = serviceProvider; _logger = logger; - _exchangeName = exchangeName ?? throw new ArgumentNullException(nameof(exchangeName)); + _exchangeName = brokerName ?? throw new ArgumentNullException(nameof(brokerName)); _queueName = queueName ?? throw new ArgumentNullException(nameof(queueName)); ConfigureMessageBroker(); @@ -68,7 +68,7 @@ public class RabbitMQEventBus : IEventBus using var channel = _persistentConnection.CreateModel(); _logger.LogTrace("Declaring RabbitMQ exchange to publish event #{EventId}...", @event.Id); - channel.ExchangeDeclare(exchange: _exchangeName, type: "direct"); + channel.ExchangeDeclare(_exchangeName, ExchangeType.Direct); var message = JsonSerializer.Serialize(@event); var body = Encoding.UTF8.GetBytes(message); @@ -80,13 +80,7 @@ public class RabbitMQEventBus : IEventBus _logger.LogTrace("Publishing event to RabbitMQ with ID #{EventId}...", @event.Id); - channel.BasicPublish( - exchange: _exchangeName, - routingKey: eventName, - mandatory: true, - basicProperties: properties, - body: body); - + channel.BasicPublish(_exchangeName, eventName, true, properties, body); _logger.LogTrace("Published event with ID #{EventId}.", @event.Id); }); } @@ -243,8 +237,8 @@ public class RabbitMQEventBus : IEventBus var @event = JsonSerializer.Deserialize(message, eventType); var eventHandlerType = typeof(IIntegrationEventHandler<>).MakeGenericType(eventType); await Task.Yield(); - await ((Task)eventHandlerType.GetMethod(nameof(IIntegrationEventHandler.HandleAsync)) - .Invoke(handler, [@event]))!; + await (Task)eventHandlerType.GetMethod(nameof(IIntegrationEventHandler.HandleAsync)) + .Invoke(handler, [@event]); } _logger.LogTrace("Processed event {EventName}.", eventName); diff --git a/src/Infrastructure.EventBus/ServiceCollectionExtensions.cs b/src/Infrastructure.EventBus/ServiceCollectionExtensions.cs index 6fe12ee..39b5038 100644 --- a/src/Infrastructure.EventBus/ServiceCollectionExtensions.cs +++ b/src/Infrastructure.EventBus/ServiceCollectionExtensions.cs @@ -43,8 +43,10 @@ public static class ServiceCollectionExtensions return services; } - public static void SubscribeEvent(this IServiceProvider services) - where TEvent : IntegrationEvent where TEvenHandler : IIntegrationEventHandler + public static void SubscribeEvent + (this IServiceProvider services) + where TEvent : IntegrationEvent + where TEvenHandler : IIntegrationEventHandler { ArgumentNullException.ThrowIfNull(services); var eventBus = services.GetRequiredService();