/// <summary> /// Get the details for searchers /// </summary> /// <returns></returns> public IEnumerable<ExamineSearcherModel> GetSearcherDetails() { var model = new List<ExamineSearcherModel>( ExamineManager.Instance.SearchProviderCollection.Cast<BaseSearchProvider>().Select(searcher => { var indexerModel = new ExamineIndexerModel() { Name = searcher.Name }; var props = TypeHelper.CachedDiscoverableProperties(searcher.GetType(), mustWrite: false) //ignore these properties .Where(x => !new[] { "Description" }.InvariantContains(x.Name)) .OrderBy(x => x.Name); foreach (var p in props) { indexerModel.ProviderProperties.Add(p.Name, p.GetValue(searcher, null).ToString()); } return indexerModel; })); return model; }
private ExamineIndexerModel CreateModel(BaseIndexProvider indexer) { var indexerModel = new ExamineIndexerModel() { IndexCriteria = indexer.IndexerData, Name = indexer.Name }; var props = TypeHelper.CachedDiscoverableProperties(indexer.GetType(), mustWrite: false) //ignore these properties .Where(x => !new[] { "IndexerData", "Description", "WorkingFolder" }.InvariantContains(x.Name)) .OrderBy(x => x.Name); foreach (var p in props) { indexerModel.ProviderProperties.Add(p.Name, p.GetValue(indexer, null).ToString()); } var luceneIndexer = indexer as LuceneIndexer; if (luceneIndexer != null && luceneIndexer.IndexExists()) { indexerModel.IsLuceneIndex = true; indexerModel.DocumentCount = luceneIndexer.GetIndexDocumentCount(); indexerModel.FieldCount = luceneIndexer.GetIndexDocumentCount(); indexerModel.IsOptimized = luceneIndexer.IsIndexOptimized(); indexerModel.DeletionCount = luceneIndexer.GetDeletedDocumentsCount(); } return indexerModel; }