public override IIndexDiagnostics Create(IIndex index) { if (!(index is IIndexDiagnostics indexDiag)) { if (index is LuceneIndex luceneIndex) { indexDiag = new LuceneIndexDiagnostics( luceneIndex, _loggerFactory.CreateLogger <LuceneIndexDiagnostics>(), _hostingEnvironment, null); } else { indexDiag = base.Create(index); } } return(indexDiag); }
private ExamineIndexModel CreateModel(IIndex index) { var indexName = index.Name; if (!(index is IIndexDiagnostics indexDiag)) { if (index is LuceneIndex luceneIndex) { indexDiag = new LuceneIndexDiagnostics(luceneIndex, Logger); } else { indexDiag = new GenericIndexDiagnostics(index); } } var isHealth = indexDiag.IsHealthy(); var properties = new Dictionary <string, object> { [nameof(IIndexDiagnostics.DocumentCount)] = indexDiag.DocumentCount, [nameof(IIndexDiagnostics.FieldCount)] = indexDiag.FieldCount, }; foreach (var p in indexDiag.Metadata) { properties[p.Key] = p.Value; } var indexerModel = new ExamineIndexModel { Name = indexName, HealthStatus = isHealth.Success ? (isHealth.Result ?? "Healthy") : (isHealth.Result ?? "Unhealthy"), ProviderProperties = properties, CanRebuild = _indexRebuilder.CanRebuild(index) }; return(indexerModel); }