Esempio n. 1
0
        private void DoInternalSubscription(string eventName)
        {
            var containsKey = _subsManager.HasSubscriptionsForEvent(eventName);

            if (!containsKey)
            {
                if (!_connection.IsConnected)
                {
                    _connection.TryConnect();
                }

                using (var channel = _connection.CreateModel())
                {
                    channel.QueueBind(queue: _queueName,
                                      exchange: _exchangeName,
                                      routingKey: eventName);
                }
            }
        }
Esempio n. 2
0
        private async Task HandleEvent(string eventName, string message)
        {
            if (!_subscriptionManager.HasSubscriptionsForEvent(eventName))
            {
                return;
            }

            var subscriptions = _subscriptionManager.GetHandlersForEvent(eventName);

            foreach (var subscription in subscriptions)
            {
                await subscription.Handle(message, _eventBusConfiguration.MessageTypeResolver);
            }
        }
Esempio n. 3
0
        private async Task HandleEvent(string eventName, string message)
        {
            if (!_subscriptionManager.HasSubscriptionsForEvent(eventName))
            {
                return;
            }

            using (var scope = _autofac.BeginLifetimeScope("RabbitMQEventBus"))
            {
                var subscriptions = _subscriptionManager.GetHandlersForEvent(eventName);
                foreach (var subscription in subscriptions)
                {
                    await subscription.Handle(message, scope);
                }
            }
        }