Ejemplo n.º 1
0
        private void InitializeENode(
            bool useMockEventStore                  = false,
            bool useMockPublishedVersionStore       = false,
            bool useMockDomainEventPublisher        = false,
            bool useMockApplicationMessagePublisher = false,
            bool useMockDomainExceptionPublisher    = false)
        {
            var connectionString = ConfigurationManager.AppSettings["connectionString"];
            var assemblies       = new[]
            {
                Assembly.GetExecutingAssembly()
            };

            if (_serilogLoggerFactory == null)
            {
                _serilogLoggerFactory = new SerilogLoggerFactory(defaultLoggerFileName: "logs\\default")
                                        .AddFileLogger("ECommon", "logs\\ecommon")
                                        .AddFileLogger("EQueue", "logs\\equeue")
                                        .AddFileLogger("ENode", "logs\\enode");
            }
            _enodeConfiguration = ECommonConfiguration
                                  .Create()
                                  .UseAutofac()
                                  .RegisterCommonComponents()
                                  .UseSerilog(_serilogLoggerFactory)
                                  .UseJsonNet()
                                  .RegisterUnhandledExceptionHandler()
                                  .CreateENode()
                                  .RegisterENodeComponents()
                                  .UseEventStore(useMockEventStore)
                                  .UsePublishedVersionStore(useMockPublishedVersionStore)
                                  .RegisterBusinessComponents(assemblies)
                                  .InitializeEQueue()
                                  .UseEQueue(useMockDomainEventPublisher, useMockApplicationMessagePublisher, useMockDomainExceptionPublisher)
                                  .BuildContainer();

            if (!useMockEventStore)
            {
                _enodeConfiguration.InitializeSqlServerEventStore(connectionString);
            }
            if (!useMockPublishedVersionStore)
            {
                _enodeConfiguration.InitializeSqlServerPublishedVersionStore(connectionString);
            }

            _enodeConfiguration
            .InitializeBusinessAssemblies(assemblies)
            .StartEQueue()
            .Start();

            _commandService              = ObjectContainer.Resolve <ICommandService>();
            _memoryCache                 = ObjectContainer.Resolve <IMemoryCache>();
            _eventStore                  = ObjectContainer.Resolve <IEventStore>();
            _publishedVersionStore       = ObjectContainer.Resolve <IPublishedVersionStore>();
            _domainEventPublisher        = ObjectContainer.Resolve <IMessagePublisher <DomainEventStreamMessage> >();
            _applicationMessagePublisher = ObjectContainer.Resolve <IMessagePublisher <IApplicationMessage> >();
            _domainExceptionPublisher    = ObjectContainer.Resolve <IMessagePublisher <IDomainException> >();
            _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(BaseTest));
            _logger.Info("----ENode initialized.");
        }
Ejemplo n.º 2
0
        private static void InitializeENode(
            bool useMockEventStore                    = false,
            bool useMockPublishedVersionStore         = false,
            bool useMockDomainEventPublisher          = false,
            bool useMockApplicationMessagePublisher   = false,
            bool useMockPublishableExceptionPublisher = false)
        {
            var setting    = new ConfigurationSetting(ConfigurationManager.AppSettings["connectionString"]);
            var assemblies = new[]
            {
                Assembly.GetExecutingAssembly()
            };

            _enodeConfiguration = ECommonConfiguration
                                  .Create()
                                  .UseAutofac()
                                  .RegisterCommonComponents()
                                  .UseLog4Net()
                                  .UseJsonNet()
                                  .RegisterUnhandledExceptionHandler()
                                  .CreateENode(setting)
                                  .RegisterENodeComponents()
                                  .UseEventStore(useMockEventStore)
                                  .UsePublishedVersionStore(useMockPublishedVersionStore)
                                  .RegisterBusinessComponents(assemblies)
                                  .UseEQueue(useMockDomainEventPublisher, useMockApplicationMessagePublisher, useMockPublishableExceptionPublisher)
                                  .BuildContainer();

            if (!useMockEventStore)
            {
                _enodeConfiguration.InitializeSqlServerEventStore();
            }
            if (!useMockPublishedVersionStore)
            {
                _enodeConfiguration.InitializeSqlServerPublishedVersionStore();
            }

            _enodeConfiguration
            .InitializeBusinessAssemblies(assemblies)
            .StartEQueue()
            .Start();

            _commandService                = ObjectContainer.Resolve <ICommandService>();
            _memoryCache                   = ObjectContainer.Resolve <IMemoryCache>();
            _eventStore                    = ObjectContainer.Resolve <IEventStore>();
            _publishedVersionStore         = ObjectContainer.Resolve <IPublishedVersionStore>();
            _domainEventPublisher          = ObjectContainer.Resolve <IMessagePublisher <DomainEventStreamMessage> >();
            _applicationMessagePublisher   = ObjectContainer.Resolve <IMessagePublisher <IApplicationMessage> >();
            _publishableExceptionPublisher = ObjectContainer.Resolve <IMessagePublisher <IPublishableException> >();
            _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(BaseTest));
            _logger.Info("ENode initialized.");
        }
Ejemplo n.º 3
0
        private static void InitializeENodeFramework()
        {
            var assemblies = new[] { Assembly.GetExecutingAssembly() };

            _configuration = ECommonConfiguration
                             .Create()
                             .UseAutofac()
                             .RegisterCommonComponents()
                             .UseLog4Net()
                             .UseJsonNet()
                             .RegisterUnhandledExceptionHandler()
                             .CreateENode()
                             .RegisterENodeComponents()
                             .UseMongoDbEventStore();

            _configuration.GetCommonConfiguration()
            .BuildContainer();

            _configuration.InitializeBusinessAssemblies(assemblies)
            .InitializeMongoDbEventStore(_mongoDbConfiguration);

            Console.WriteLine("ENode started...");
        }
Ejemplo n.º 4
0
        private void InitializeKafka(
            bool useMockEventStore                    = false,
            bool useMockPublishedVersionStore         = false,
            bool useMockDomainEventPublisher          = false,
            bool useMockApplicationMessagePublisher   = false,
            bool useMockPublishableExceptionPublisher = false)
        {
            var brokerAddresses = Root["Kafka:BrokerAddresses"];

            var assemblies = new[]
            {
                Assembly.GetExecutingAssembly()
            };

            _enodeConfiguration = ECommonConfiguration
                                  .Create()
                                  .UseAutofac()
                                  .RegisterCommonComponents()
                                  .UseLog4Net()
                                  .UseJsonNet()
                                  .RegisterUnhandledExceptionHandler()
                                  .CreateENode()
                                  .RegisterENodeComponents()
                                  .UseEventStore(useMockEventStore)
                                  .UsePublishedVersionStore(useMockPublishedVersionStore)
                                  .UseAggregateSnapshot(useMockPublishedVersionStore)
                                  .RegisterBusinessComponents(assemblies)
                                  .InitializeKafka(GetIPEndPointFromAddresses(brokerAddresses))
                                  .UseKafka(useMockDomainEventPublisher, useMockApplicationMessagePublisher, useMockPublishableExceptionPublisher)
                                  .BuildContainer();

            var eventStoreConnectionString = Root["ENode:EventStoreConnectionString"];
            var eventStoreDatabase         = Root["ENode:EventStoreDatabaseName"];

            if (!useMockEventStore)
            {
                _enodeConfiguration.InitializeMongoDbEventStore(new MongoDbConfiguration()
                {
                    ConnectionString = eventStoreConnectionString,
                    DatabaseName     = eventStoreDatabase
                });
            }
            if (!useMockPublishedVersionStore)
            {
                _enodeConfiguration.InitializeMongoDbPublishedVersionStore(new MongoDbConfiguration()
                {
                    ConnectionString = eventStoreConnectionString,
                    DatabaseName     = eventStoreDatabase
                });

                _enodeConfiguration.InitializeMongoDbAggregateSnapshotter(new MongoDbConfiguration()
                {
                    ConnectionString = eventStoreConnectionString,
                    DatabaseName     = eventStoreDatabase
                });
            }

            var strBrokerAddresses = Root["Kafka:BrokerAddresses"];
            var ipEndPoints        = new List <IPEndPoint>();
            var addressList        = strBrokerAddresses.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var address in addressList)
            {
                var array    = address.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
                var endpoint = SocketUtils.GetIPEndPointFromHostName(array[0], int.Parse(array[1]));
                ipEndPoints.Add(endpoint);
            }
            _enodeConfiguration
            .InitializeBusinessAssemblies(assemblies)
            .StartKafka()
            .Start();

            _commandService                = ObjectContainer.Resolve <ICommandService>();
            _memoryCache                   = ObjectContainer.Resolve <IMemoryCache>();
            _eventStore                    = ObjectContainer.Resolve <IEventStore>();
            _publishedVersionStore         = ObjectContainer.Resolve <IPublishedVersionStore>();
            _domainEventPublisher          = ObjectContainer.Resolve <IMessagePublisher <DomainEventStreamMessage> >();
            _applicationMessagePublisher   = ObjectContainer.Resolve <IMessagePublisher <IApplicationMessage> >();
            _publishableExceptionPublisher = ObjectContainer.Resolve <IMessagePublisher <IPublishableException> >();
            _logger = ObjectContainer.Resolve <ILoggerFactory>().Create(typeof(BaseTest));
            _logger.Info("----ENode initialized.");
        }