private static void InitEventsDispatcher(IApplicationSettings applicationSettings, ILog logger)
        {
            var endpoint = GetEventStoreEndpoint(applicationSettings);
            var connection = EventStoreConnection.Create(endpoint);
            connection.ConnectAsync().Wait();
            _dispatcher = new EventsDispatcher(logger, applicationSettings);

            // use MongoDB for the read model
            var factory = new MongoDbAtomicWriterFactory(applicationSettings.MongoDbConnectionString, applicationSettings.MongoDbName);

            // if you want to use SQL Server for the read model then use this factory instead
            //var factory = new SqlServerAtomicWriterFactory(applicationSettings.SqlServerConnectionString);

            // if you want to use ElasticSearch for the read model then use this factory instead
            //var factory = new ElasticSearchAtomicWriterFactory(applicationSettings.ElasticSearchBaseUrl);

            var observers = new ObserverRegistry().GetObservers(factory);
            _dispatcher.Start(connection, observers);
        }
        private static void InitEventsDispatcher(IApplicationSettings applicationSettings, ILog logger)
        {
            var endpoint   = GetEventStoreEndpoint(applicationSettings);
            var connection = EventStoreConnection.Create(endpoint);

            connection.ConnectAsync().Wait();
            _dispatcher = new EventsDispatcher(logger, applicationSettings);

            // use MongoDB for the read model
            var factory = new MongoDbAtomicWriterFactory(applicationSettings.MongoDbConnectionString, applicationSettings.MongoDbName);

            // if you want to use SQL Server for the read model then use this factory instead
            //var factory = new SqlServerAtomicWriterFactory(applicationSettings.SqlServerConnectionString);

            // if you want to use ElasticSearch for the read model then use this factory instead
            //var factory = new ElasticSearchAtomicWriterFactory(applicationSettings.ElasticSearchBaseUrl);

            var observers = new ObserverRegistry().GetObservers(factory);

            _dispatcher.Start(connection, observers);
        }