/// <summary> /// Обновление коллекции документов /// </summary> /// <param name="documentList">Список документов</param> /// <param name="delete"> /// Если true, то операция удаления, иначе операция создания новых и обновления существующих /// </param> /// <example> /// POST: api/CompanyDocument /// POST: api/CompanyDocument?delete=true /// </example> public void Post([FromBody] List <IElasticDocument> documentList, [FromUri] bool delete = false) { Domain.CompanyDocument.CompanyDocumentWriter productCompanyWriter = new CompanyDocumentWriter(_elasticConnectionString); if (delete) { productCompanyWriter.BulkDelete(documentList); } else { productCompanyWriter.BulkCreateOrUpdate(documentList); } }
/// <summary> Запись буфера в Elastic </summary> private async Task WriteBuffer(List <IElasticDocument> buffer, CompanyDocumentReaderSettings readerSettings) { foreach (var doc in buffer) { doc.UpdateDate = readerSettings.LastStarted; } var writer = new CompanyDocumentWriter(ElasticConnectionString); await writer.BulkCreateOrUpdate(buffer); // корректировка параметров для следующей операции чтения: readerSettings.LastId = int.Parse( buffer.OrderByDescending(d => int.Parse(d.Id)).First().Id); this.SaveReaderSettings(readerSettings); }