private void RegisterDocumentStore(ILogger logger)
        {
            var verifier = new ProviderVerifier();

            if (_configuration.DocumentStore == null || string.IsNullOrEmpty(_configuration.DocumentStore?.Url) || !verifier.IsNoSqlServiceRunning(_configuration.DocumentStore?.Url,
                                                                                                                                                   _configuration.DocumentStore?.Username,
                                                                                                                                                   _configuration.DocumentStore?.Password,
                                                                                                                                                   logger))
            {
                _autofacContainerBuilder.RegisterType <NullDocumentStore>()
                .As <IDocumentStore>()
                .SingleInstance();
                return;
            }

            var store = new Raven.Client.Documents.DocumentStore {
                Urls = new[] { _configuration.DocumentStore?.Url }
            };

            store.Initialize();

            _autofacContainerBuilder.RegisterInstance <Raven.Client.Documents.DocumentStore>(store)
            .As <Raven.Client.Documents.IDocumentStore>()
            .SingleInstance();

            _autofacContainerBuilder.Register(ctx =>
            {
                var transactionContext = AmbientTransactionContext.Current;
                var unitOfWork         = (UnitOfWork)transactionContext?.Items["UnitOfWork"];

                if (unitOfWork != null)
                {
                    return(unitOfWork.DocumentSessionFactory);
                }

                return(new DocumentSessionFactory(ctx.Resolve <Raven.Client.Documents.IDocumentStore>(), ctx.Resolve <ILogger>(), false));
            })
            .AsSelf()
            .InstancePerLifetimeScope();

            _autofacContainerBuilder.RegisterType <DocumentStore>()
            .As <IDocumentStore>()
            .InstancePerDependency();
        }