public async Task <CoinMarketCapResponse <T> > SendAsync <T>(CoinMarketCapRequest request) { using (var http = new HttpClient()) { var builder = new UriBuilder(BaseUrl) { Path = request.RelativeUrl, Query = request.Properties.ToQueryString() }; var response = await http.GetAsync(builder.Uri); var content = await response.Content.ReadAsStringAsync(); if (!response.IsSuccessStatusCode) { var error = JsonConvert.DeserializeObject <CoinMarketCapError>(content); throw new CoinMarketCapException(error.Message); } var result = JsonConvert.DeserializeObject <T>(content); return(new CoinMarketCapResponse <T> { Result = result }); } }
public static async Task <Ticker[]> GetTickersAsync(this CoinMarketCapClient client, Int32 limit = 100) { var request = new CoinMarketCapRequest { RelativeUrl = "/v1/ticker", Properties = new Dictionary <String, String> { ["limit"] = limit.ToString() } }; var response = await client.SendAsync <Ticker[]>(request); return(response.Result); }