Exemple #1
0
        public static SimpleEventBusMsDIBuilder AddRabbitMQ(this SimpleEventBusMsDIBuilder builder,
                                                            EventReceivedFunc configEventReceived = null,
                                                            Func <IServiceProvider, IEventSerializer <byte[]> > configSerializer = null,
                                                            Func <ConnectionFactory> configConnectionFactory = null)
        {
            builder.Config(services =>
            {
                if (configEventReceived != null)
                {
                    services.TryAddSingleton(configEventReceived);
                }
                if (configSerializer != null)
                {
                    services.TryAddSingleton(_ => configSerializer(_));
                }
                if (configConnectionFactory != null)
                {
                    services.TryAddSingleton(_ => configConnectionFactory());
                }

                services.TryAddSingleton <IEventNameTypeResolver, DefaultEventNameTypeResolver>();
                services.TryAddSingleton <IEventBus, RabbitMQEventBus>();
                services.TryAddSingleton <IRabbitMQConnection, DefaultRabbitMQConnection>();
            });
            return(builder);
        }
Exemple #2
0
        public RabbitMQEventBus(IRabbitMQConnection persistentConnection,
                                IServiceProvider serviceProvider, ILoggerFactory loggerFactory,
                                ISubscriptionsManager subsManager, EventReceivedFunc eventReceiver,
                                IEventSerializer <byte[]> eventSerializer, IEventNameTypeResolver eventNameTypeResolver)
        {
            _persistentConnection = persistentConnection ?? throw new ArgumentNullException(nameof(persistentConnection));
            _logger = loggerFactory.CreateLogger <RabbitMQEventBus>();

            _serviceProvider       = serviceProvider;
            SubscriptionsManager   = subsManager;
            _eventReceiver         = eventReceiver;
            _eventSerializer       = eventSerializer;
            _eventNameTypeResolver = eventNameTypeResolver;
        }