public void Initialize(IServiceCollection serviceCollection)
        {
            var snapshot        = serviceCollection.BuildServiceProvider();
            var configuration   = snapshot.GetService <IConfiguration>();
            var settingsManager = snapshot.GetService <ISettingsManager>();

            var searchConnectionString = configuration.GetValue <string>("Search:Lucene:SearchConnectionString");

            if (string.IsNullOrEmpty(searchConnectionString))
            {
                searchConnectionString = settingsManager.GetValue(ModuleConstants.Settings.General.SearchConnectionString.Name, string.Empty);
            }

            var searchConnection = new SearchConnection(searchConnectionString);

            if (!string.IsNullOrEmpty(searchConnectionString))
            {
                serviceCollection.AddSingleton <ISearchConnection>(searchConnection);
            }

            var dataDirectoryPath = Path.GetFullPath(searchConnection["DataDirectoryPath"] ?? searchConnection["server"]);
            var luceneSettings    = new LuceneSearchProviderSettings(dataDirectoryPath, searchConnection.Scope);

            serviceCollection.AddSingleton(luceneSettings);
            serviceCollection.AddSingleton <ISearchProvider, LuceneSearchProvider>();
        }
示例#2
0
        public override void Initialize()
        {
            base.Initialize();

            var searchConnection = _container.Resolve <ISearchConnection>();

            if (searchConnection?.Provider?.EqualsInvariant("Lucene") == true)
            {
                var dataDirectoryPath = HostingEnvironment.MapPath(searchConnection["DataDirectoryPath"] ?? searchConnection["server"]);
                var luceneSettings    = new LuceneSearchProviderSettings(dataDirectoryPath, searchConnection.Scope);

                _container.RegisterInstance(luceneSettings);
                _container.RegisterType <ISearchProvider, LuceneSearchProvider>(new ContainerControlledLifetimeManager());
            }
        }