Exemplo n.º 1
0
        public static ENodeConfiguration InitializeEQueue(this ENodeConfiguration enodeConfiguration)
        {
            if (_isEQueueInitialized)
            {
                return(enodeConfiguration);
            }

            _commandService = new CommandService();
            _eventPublisher = new DomainEventPublisher();
            _applicationMessagePublisher = new ApplicationMessagePublisher();
            _domainExceptionPublisher    = new DomainExceptionPublisher();

            _isEQueueInitialized = true;

            return(enodeConfiguration);
        }
Exemplo n.º 2
0
        public static ENodeConfiguration UseEQueue(this ENodeConfiguration enodeConfiguration)
        {
            var configuration = enodeConfiguration.GetCommonConfiguration();

            configuration.RegisterEQueueComponents();

            _applicationMessagePublisher = new ApplicationMessagePublisher();
            _domainEventPublisher        = new DomainEventPublisher();
            _exceptionPublisher          = new DomainExceptionPublisher();

            configuration.SetDefault <IMessagePublisher <IApplicationMessage>, ApplicationMessagePublisher>(_applicationMessagePublisher);
            configuration.SetDefault <IMessagePublisher <DomainEventStreamMessage>, DomainEventPublisher>(_domainEventPublisher);
            configuration.SetDefault <IMessagePublisher <IDomainException>, DomainExceptionPublisher>(_exceptionPublisher);

            return(enodeConfiguration);
        }
        public static ENodeConfiguration UseKafka(this ENodeConfiguration enodeConfiguration,
                                                  bool useMockDomainEventPublisher        = false,
                                                  bool useMockApplicationMessagePublisher = false,
                                                  bool useMockDomainExceptionPublisher    = false)
        {
            var assemblies = new[] { Assembly.GetExecutingAssembly() };

            enodeConfiguration.RegisterTopicProviders(assemblies);

            var configuration = enodeConfiguration.GetCommonConfiguration();

            _commandService = new CommandService();
            configuration.SetDefault <ICommandService, CommandService>(_commandService);

            if (useMockDomainEventPublisher)
            {
                configuration.SetDefault <IMessagePublisher <DomainEventStreamMessage>, MockDomainEventPublisher>();
            }
            else
            {
                _eventPublisher = new DomainEventPublisher();
                configuration.SetDefault <IMessagePublisher <DomainEventStreamMessage>, DomainEventPublisher>(_eventPublisher);
            }

            if (useMockApplicationMessagePublisher)
            {
                configuration.SetDefault <IMessagePublisher <IApplicationMessage>, MockApplicationMessagePublisher>();
            }
            else
            {
                _applicationMessagePublisher = new ApplicationMessagePublisher();
                configuration.SetDefault <IMessagePublisher <IApplicationMessage>, ApplicationMessagePublisher>(_applicationMessagePublisher);
            }

            if (useMockDomainExceptionPublisher)
            {
                configuration.SetDefault <IMessagePublisher <IDomainException>, MockDomainExceptionPublisher>();
            }
            else
            {
                _domainExceptionPublisher = new DomainExceptionPublisher();
                configuration.SetDefault <IMessagePublisher <IDomainException>, DomainExceptionPublisher>(_domainExceptionPublisher);
            }

            return(enodeConfiguration);
        }
Exemplo n.º 4
0
        public static ENodeConfiguration UseRabbitMQ(this ENodeConfiguration enodeConfiguration)
        {
            var assemblies = new[] { Assembly.GetExecutingAssembly() };

            enodeConfiguration.RegisterTopicProviders(assemblies);

            var configuration = enodeConfiguration.GetCommonConfiguration();

            _commandService = new CommandService();
            _applicationMessagePublisher = new ApplicationMessagePublisher();
            _domainEventPublisher        = new DomainEventPublisher();
            _exceptionPublisher          = new DomainExceptionPublisher();

            configuration.SetDefault <ICommandService, CommandService>(_commandService);
            configuration.SetDefault <IMessagePublisher <IApplicationMessage>, ApplicationMessagePublisher>(_applicationMessagePublisher);
            configuration.SetDefault <IMessagePublisher <DomainEventStreamMessage>, DomainEventPublisher>(_domainEventPublisher);
            configuration.SetDefault <IMessagePublisher <IDomainException>, DomainExceptionPublisher>(_exceptionPublisher);

            return(enodeConfiguration);
        }