protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { string url = request.RequestUri.AbsoluteUri; if (!CallToTheAPIIndex.ContainsKey(url)) { CallToTheAPIIndex.Add(url, 0); } else { CallToTheAPIIndex[url]++; } var batchIdParameter = request.Content?.Headers?.ContentType?.Parameters.FirstOrDefault(param => param.Name == "boundary"); Regex batchGuidRegex = new Regex("batchresponse_([0-9A-Fa-f]{8}[-][0-9A-Fa-f]{4}[-][0-9A-Fa-f]{4}[-][0-9A-Fa-f]{4}[-][0-9A-Fa-f]{12})"); MockHttpResponse response = Responses.Where(resp => resp.Url == url).ToList()[CallToTheAPIIndex[url]]; if (response != null) { #pragma warning disable CA2000 // Dispose objects before losing scope HttpResponseMessage result = new HttpResponseMessage(System.Net.HttpStatusCode.OK); #pragma warning restore CA2000 // Dispose objects before losing scope if (batchIdParameter != null) { response.Content = batchGuidRegex.Replace(response.Content, batchIdParameter.Value.Replace("batch", "batchresponse")); } result.Content = new StringContent(response.Content); return(Task.FromResult(result)); } return(Task.FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.NotFound))); }
protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { string url = request.RequestUri.AbsoluteUri; if (!CallToTheAPIIndex.ContainsKey(url)) { CallToTheAPIIndex.Add(url, 0); } else { CallToTheAPIIndex[url]++; } MockHttpResponse response = Responses.Where(resp => resp.Url == url).ToList()[CallToTheAPIIndex[url]]; if (response != null) { #pragma warning disable CA2000 // Dispose objects before losing scope HttpResponseMessage result = new HttpResponseMessage(System.Net.HttpStatusCode.OK); #pragma warning restore CA2000 // Dispose objects before losing scope result.Content = new StringContent(response.Content); return(Task.FromResult(result)); } return(Task.FromResult(new HttpResponseMessage(System.Net.HttpStatusCode.NotFound))); }