public async Task AddOrUpdateAsync(Document document, CancellationToken cancellationToken = default) { ValidateElasticSearchEnabled(); var client = _clientProvider.GetClient(); var existsResponse = await client.DocumentExistsAsync(DocumentPath <EsDocument> .Id(document.Id), x => x.Index(_options.IndexName), cancellationToken); HandleError(existsResponse); var esDocument = new EsDocument { Id = document.Id, ProjectId = document.ProjectId, Name = document.Name, FileName = document.FileName, Content = document.Content, LanguageCode = ConvertLanguageCode(document.LanguageCode), Version = ConvertVersion(document.Version) }; if (!existsResponse.Exists) { HandleError(await client.IndexAsync(esDocument, x => x.Id(document.Id).Index(_options.IndexName), cancellationToken)); } else { HandleError(await client.UpdateAsync(DocumentPath <EsDocument> .Id(document.Id), x => x.Doc(esDocument).Index(_options.IndexName), cancellationToken)); } }
public virtual async Task AddOrUpdateAsync(Document document, CancellationToken cancellationToken = default) { var client = _clientProvider.GetClient(); var esDocument = new EsDocument { Id = NormalizeField(document.Id), ProjectId = NormalizeField(document.ProjectId), Name = document.Name, FileName = document.FileName, Content = document.Content, LanguageCode = NormalizeField(document.LanguageCode), Version = NormalizeField(document.Version) }; HandleError(await client.IndexAsync(esDocument, x => x.Index(_options.IndexName), cancellationToken)); }