private static void addEventHandlerToManager(IServiceResolver resolver, IEnumerable<Type> types) {
     IEventHandlerManager Manager = resolver.GetService(typeof(IEventHandlerManager)) as IEventHandlerManager;
     foreach (var type in types) {
         var handler = (resolver.GetService(type));
         Manager.AddHandler(type.GetInterfaces().Where(a => a.GetGenericArguments().Count() > 0).FirstOrDefault().GetGenericArguments().FirstOrDefault(), handler);
     }
 }
Esempio n. 2
0
        public RabbitMqMessageListener(
            RabbitMqConfiguration rabbitMqConfiguration,
            IEventHandlerManager eventHandlerManager,
            ILogger <RabbitMqMessageListener> logger)
        {
            _rabbitMqConfiguration = rabbitMqConfiguration;
            _eventHandlerManager   = eventHandlerManager;
            _logger = logger;

            InitializeConnection();
        }
Esempio n. 3
0
        public EventBus(IEventHandlerManager eventHandlerManager, IServiceProvider serviceProvider)
        {
            var hostName = Environment.GetEnvironmentVariable("RABBITMQ_SERVICE_HOST") ?? "localhost";

            _connectionFactory = new ConnectionFactory {
                HostName = hostName
            };
            _connection          = _connectionFactory.CreateConnection();
            _channel             = CreateChannel();
            _eventHandlerManager = eventHandlerManager;
            _serviceProvider     = serviceProvider;
        }
Esempio n. 4
0
        public RabbitMQEventBus(
            IRabbitMQPersistentConnection persistentConnection,
            ILogger <RabbitMQEventBus> logger,
            IEventHandlerManager manager,
            IServiceProvider service,
            IOptions <RabbitMQEventBusOptions> options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
            _logger      = logger ?? throw new ArgumentNullException(nameof(logger));
            _retryCount  = options.Value.PublishRetryCount;
            _manager     = manager ?? throw new ArgumentNullException(nameof(manager));
            this.service = service ?? throw new ArgumentNullException(nameof(service));
            _channel     = CreateConsumer();
        }
Esempio n. 5
0
        /// <summary>
        /// Initialize a new <see cref="RabbitMQEventBus"/> instance.
        /// </summary>
        /// <param name="persistentConnection">A Persistent Rabbit MQ Connection</param>
        /// <param name="logger"></param>
        /// <param name="manager">A reaolationship Scheduler that manage event and handler</param>
        /// <param name="service">A scope service container.</param>
        /// <param name="options">configuration options</param>
        public RabbitMQEventBus(
            IRabbitMQPersistentConnection persistentConnection,
            ILogger <RabbitMQEventBus> logger,
            IEventHandlerManager manager,
            IServiceScope service,
            IOptions <RabbitMQEventBusOptions> options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
            _logger      = logger ?? throw new ArgumentNullException(nameof(logger));
            _retryCount  = options.Value.PublishRetryCount;
            _manager     = manager ?? throw new ArgumentNullException(nameof(manager));
            this.service = service == null
                ? throw new ArgumentNullException(nameof(service))
                :service.ServiceProvider ?? throw new InvalidOperationException("scope service container must been non-null value");
            _channel = CreateConsumer();
        }
Esempio n. 6
0
 /// <summary>
 /// 初始化一个<see cref="EventBus"/>类型的实例
 /// </summary>
 /// <param name="manager">事件处理器服务</param>
 /// <param name="messageEventBus">消息事件总线</param>
 public EventBus(IEventHandlerManager manager, IMessageEventBus messageEventBus = null)
 {
     Manager         = manager;
     MessageEventBus = messageEventBus;
 }
Esempio n. 7
0
 /// <summary>
 /// 初始化事件总线
 /// </summary>
 /// <param name="manager">事件处理器服务</param>
 public EventBus(IEventHandlerManager manager)
 {
     Manager = manager ?? throw new ArgumentNullException(nameof(manager));
 }
Esempio n. 8
0
 public EventBus(IEventHandlerManager eventHandler, IServiceProvider serviceProvider)
 {
     _IEventHandlerManager = eventHandler;
     _IServiceProvider     = serviceProvider;
 }