public override async Task PublishedAsync(PublishContentContext context) { // TODO: ignore if this index is not configured for the content type var buildIndexContext = new BuildIndexContext(new DocumentIndex(context.ContentItem.ContentItemId), context.ContentItem, new string[] { context.ContentItem.ContentType }); // Lazy resolution to prevent cyclic dependency var contentItemIndexHandlers = _serviceProvider.GetServices <IContentItemIndexHandler>(); await contentItemIndexHandlers.InvokeAsync(x => x.BuildIndexAsync(buildIndexContext), _logger); var indexes = await _elasticIndexManager.ListIndexesAsync(); foreach (var index in indexes)// .List()) { await _elasticIndexManager.DeleteDocumentsAsync(index.Key, new string[] { context.ContentItem.ContentItemId }); await _elasticIndexManager.StoreDocumentsAsync(index.Key, new DocumentIndex[] { buildIndexContext.DocumentIndex }); } }