public async Task SaveToolState(RavenToolState toolState) { var bulkInsertUrl = $"{serverName}/databases/{DatabaseName}/bulk_docs"; var batchInsertCommands = toolState.Batches.Select(b => new { Method = "PUT", Key = $"{RavenConstants.BatchPrefix}/{b.Number}", Document = b, Metadata = new object() }).Cast <object>().ToList(); batchInsertCommands.Add( new { Method = "PUT", Key = RavenConstants.ToolStateId, Document = this.FromToolState(toolState), Metadata = new object() }); var serializedCommands = JsonConvert.SerializeObject(batchInsertCommands); var result = await HttpClient .PostAsync(bulkInsertUrl, new StringContent(serializedCommands, Encoding.UTF8, "application/json")); result.EnsureSuccessStatusCode(); }
public async Task SaveToolState(RavenToolState toolState) { var bulkInsertUrl = $"{ServerName}/databases/{DatabaseName}/bulk_docs"; var inserts = toolState.Batches.Select(batch => new PutCommand { Id = $"{RavenConstants.BatchPrefix}/{batch.Number}", Type = "PUT", ChangeVector = null, Document = batch }).ToList(); inserts.Add(new PutCommand { Id = $"{RavenConstants.ToolStateId}", Type = "PUT", ChangeVector = null, Document = this.FromToolState(toolState) }); var request = new { Commands = inserts.ToArray() }; var serializeObject = JsonConvert.SerializeObject(request); var result = await HttpClient.PostAsync(bulkInsertUrl, new StringContent(serializeObject, Encoding.UTF8, "application/json")); result.EnsureSuccessStatusCode(); }
public static RavenToolStateDto FromToolState(this IRavenTestSuite suite, RavenToolState toolState) { return(new RavenToolStateDto { RunParameters = toolState.RunParameters, Batches = RavenToolStateDto.ToBatches(toolState.Batches), Endpoint = toolState.EndpointName, Status = toolState.Status }); }