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); }
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); }
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); }