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