Example #1
0
 public RabbitMqEventBusConfiguration(DomainEventSubscribersInformation domainEventSubscribersInformation,
                                      RabbitMqConfig config, string domainEventExchange = "domain_events")
 {
     _domainEventSubscribersInformation = domainEventSubscribersInformation;
     _config = config;
     _domainEventExchange = domainEventExchange;
 }
Example #2
0
        private void CleanEnvironment(IModel channel, DomainEventSubscribersInformation information)
        {
            channel.ExchangeDelete(TestDomainEvents);

            foreach (var domainEventSubscriberInformation in information.All())
            {
                channel.QueueDelete(RabbitMqQueueNameFormatter.Format(domainEventSubscriberInformation));
            }
        }
Example #3
0
 public RabbitMqDomainEventsConsumer(
     DomainEventSubscribersInformation information,
     DomainEventJsonDeserializer deserializer,
     IServiceProvider serviceProvider,
     RabbitMqConfig config)
 {
     _information     = information;
     _deserializer    = deserializer;
     _serviceProvider = serviceProvider;
     _config          = config;
 }
Example #4
0
 private static void CreateQueue(IModel channel,
                                 DomainEventSubscribersInformation domainEventSubscribersInformation)
 {
     foreach (var subscriberInformation in domainEventSubscribersInformation.All())
     {
         var domainEventsQueueName = RabbitMqQueueNameFormatter.Format(subscriberInformation);
         var queue = channel.QueueDeclare(domainEventsQueueName,
                                          true,
                                          false,
                                          false);
         dynamic domainEvent = Activator.CreateInstance(subscriberInformation.SubscribedEvent);
         channel.QueueBind(queue, TestDomainEvents, (string)domainEvent.EventName());
     }
 }
Example #5
0
 public void WithSubscribersInformation(DomainEventSubscribersInformation information)
 {
     _information = information;
 }