private async Task <bool> ExecuteLazyOperationsSingleStep(ResponseTimeInformation responseTimeInformation, List <GetRequest> requests, CancellationToken token = default) { var multiGetOperation = new MultiGetOperation(this); var multiGetCommand = multiGetOperation.CreateRequest(requests); await RequestExecutor.ExecuteAsync(multiGetCommand, Context, sessionInfo : SessionInfo, token : token).ConfigureAwait(false); var responses = multiGetCommand.Result; for (var i = 0; i < PendingLazyOperations.Count; i++) { var response = responses[i]; response.Headers.TryGetValue(Constants.Headers.RequestTime, out string tempReqTime); long.TryParse(tempReqTime, out long totalTime); responseTimeInformation.DurationBreakdown.Add(new ResponseTimeItem { Url = requests[i].UrlAndQuery, Duration = TimeSpan.FromMilliseconds(totalTime) }); if (response.RequestHasErrors()) { throw new InvalidOperationException("Got an error from server, status code: " + (int)response.StatusCode + Environment.NewLine + response.Result); } PendingLazyOperations[i].HandleResponse(response); if (PendingLazyOperations[i].RequiresRetry) { return(true); } } return(false); }
private bool ExecuteLazyOperationsSingleStep(ResponseTimeInformation responseTimeInformation, List <GetRequest> requests, Stopwatch sw) { var multiGetOperation = new MultiGetOperation(this); using var multiGetCommand = multiGetOperation.CreateRequest(requests); RequestExecutor.Execute(multiGetCommand, Context, sessionInfo: SessionInfo); var responses = multiGetCommand.Result; if (multiGetCommand.AggressivelyCached == false) { IncrementRequestCount(); } for (var i = 0; i < PendingLazyOperations.Count; i++) { long totalTime; string tempReqTime; var response = responses[i]; response.Headers.TryGetValue(Constants.Headers.RequestTime, out tempReqTime); response.Elapsed = sw.Elapsed; long.TryParse(tempReqTime, out totalTime); responseTimeInformation.DurationBreakdown.Add(new ResponseTimeItem { Url = requests[i].UrlAndQuery, Duration = TimeSpan.FromMilliseconds(totalTime) }); if (response.RequestHasErrors()) { throw new InvalidOperationException("Got an error from server, status code: " + (int)response.StatusCode + Environment.NewLine + response.Result); } PendingLazyOperations[i].HandleResponse(response); if (PendingLazyOperations[i].RequiresRetry) { return(true); } } return(false); }