public Task <IEnumerable <Models.TradingPair> > GetTradingPairs(TradingPairConfiguration configuration) { //return ConfigureRequest(configuration) // .ContinueWith((response) => new Models.TradingPair[] { Unbox(response.Result.Content.ReadAsAsync<Object>().Result, configuration) }.AsEnumerable()); return(ConfigureRequest(configuration) .ContinueWith((response) => Unbox(response.Result.Content.ReadAsAsync <Object>().Result, configuration))); }
private Task <HttpResponseMessage> ConfigureRequest(TradingPairConfiguration configuration) { if (!Uri.IsWellFormedUriString(configuration.Url, UriKind.RelativeOrAbsolute)) { throw new UriFormatException("trading pair request url issues"); } if (configuration.AdditionalHeaders != null) { foreach (var header in configuration.AdditionalHeaders) { _Client.DefaultRequestHeaders.Add(header.Key, header.Value); } } return(_Client.GetAsync(new Uri(configuration.Url))); }
private IEnumerable <Models.TradingPair> Unbox(object boxedResult, TradingPairConfiguration configuration) { List <Models.TradingPair> result = new List <Models.TradingPair>(); if (boxedResult is null) { return(result); } Newtonsoft.Json.Linq.JArray items = boxedResult as Newtonsoft.Json.Linq.JArray; if (items == null) { return(result); } foreach (var item in items) { if (item is null || !item.HasValues) { continue; } String id = item.Value <String>(configuration.IDField); if (String.IsNullOrEmpty(id)) { continue; } String name = item.Value <String>(configuration.NameField); if (String.IsNullOrEmpty(name)) { continue; } result.Add(new Models.TradingPair() { ID = id, Name = name }); } return(result); }