public QueueMessageDispatcher(ILogger logger, IQueueManager queueManager, IBrokeredMessageFactory brokeredMessageFactory,
     IEndpointNamingPolicy endpointNamingPolicy, MaxConcurrentReceiverCallsSetting maxConcurrentReceiverCallsSetting)
 {
     _logger = logger;
     _queueManager = queueManager;
     _brokeredMessageFactory = brokeredMessageFactory;
     _endpointNamingPolicy = endpointNamingPolicy;
     _maxConcurrentReceiverCallsSetting = maxConcurrentReceiverCallsSetting;
 }
Пример #2
0
        internal MessageDispatcher(ILogger logger, MessageReceiver messageReceiver, Func<object, Task> messageProcessor, IBrokeredMessageFactory brokeredMessageFactory, Type inboundMessageType, MaxConcurrentReceiverCallsSetting maxConcurrentReceiverCallsSetting)
        {
            _logger = logger;
            _messageProcessor = messageProcessor;
            _brokeredMessageFactory = brokeredMessageFactory;
            _inboundMessageType = inboundMessageType;

            messageReceiver.OnMessageAsync(PreProcessMessage, new OnMessageOptions() { MaxConcurrentCalls = maxConcurrentReceiverCallsSetting });
        }
 public SubscriptionMessageDispatcher(ILogger logger, ISubscriptionManager subscriptionManager, IBrokeredMessageFactory brokeredMessageFactory,
     IEndpointNamingPolicy endpointNamingPolicy, MaxConcurrentReceiverCallsSetting maxConcurrentReceiverCallsSetting)
 {
     _logger = logger;
     _brokeredMessageFactory = brokeredMessageFactory;
     _endpointNamingPolicy = endpointNamingPolicy;
     _maxConcurrentReceiverCallsSetting = maxConcurrentReceiverCallsSetting;
     _subscriptionManager = subscriptionManager;
 }
        private void AssertConfigurationIsValid()
        {
            if(MaxConcurrentReceiverCalls==null)
                MaxConcurrentReceiverCalls = new MaxConcurrentReceiverCallsSetting();

            if (Logger == null)
                Logger = new NullLogger();

            var validatableComponents = GetType().GetProperties()
                                                 .Select(p => p.GetValue(this))
                                                 .OfType<IValidatableConfigurationSetting>()
                                                 .ToArray();

            var validationErrors = validatableComponents
                .SelectMany(c => c.Validate())
                .ToArray();

            if (!validationErrors.Any()) return;

            var message = string.Join(Environment.NewLine, new[] { "Bus configuration is invalid:" }.Concat(validationErrors));
            throw new BusException(message);
        }