public async Task <StateVectorResponse> GetOwnStateVectorsAsync(int?time = null, string icao24 = null, int[] serials = null, Credentials credentials = null, BoundingBox boundingBox = null, CancellationToken cancellationToken = default) { var url = $"{apiUrl}/states/own"; var httpRequestMessageBuilder = new HttpRequestMessageBuilder(url, HttpMethod.Get); if (time.HasValue) { httpRequestMessageBuilder.AddQueryString("time", time.Value.ToString(CultureInfo.InvariantCulture)); } if (icao24 != null) { httpRequestMessageBuilder.AddQueryString("icao24", icao24); } if (serials != null) { foreach (var serial in serials) { httpRequestMessageBuilder.AddQueryString("serials", serial.ToString(CultureInfo.InvariantCulture)); } } if (boundingBox != null) { httpRequestMessageBuilder.AddQueryString("lamin", boundingBox.LaMin.ToString(CultureInfo.InvariantCulture)); httpRequestMessageBuilder.AddQueryString("lomin", boundingBox.LoMin.ToString(CultureInfo.InvariantCulture)); httpRequestMessageBuilder.AddQueryString("lamax", boundingBox.LaMax.ToString(CultureInfo.InvariantCulture)); httpRequestMessageBuilder.AddQueryString("lomax", boundingBox.LoMax.ToString(CultureInfo.InvariantCulture)); } var httpRequestMessage = httpRequestMessageBuilder.Build(); if (credentials != null) { SetBasicAuthHeader(httpRequestMessage, credentials); } using (var httpResponse = await httpClient .SendAsync(httpRequestMessage, HttpCompletionOption.ResponseHeadersRead, cancellationToken) .ConfigureAwait(false)) { httpResponse.EnsureSuccessStatusCode(); using (var stream = await httpResponse.Content .ReadAsStreamAsync(cancellationToken) .ConfigureAwait(false)) { return(await StateVectorResponseParser.ParseAsync(stream)); } } }
public async Task ParseStateVectorResponseTest() { var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Resources", "all_state_vectors_response.json"); using (var stream = File.OpenRead(filePath)) { var result = await StateVectorResponseParser.ParseAsync(stream); Assert.IsNotNull(result); Assert.AreEqual(1600950860, result.Time); Assert.IsNotNull(result.States); Assert.AreEqual(1750, result.States.Length); } }