private static async Task <TradingRate> ParseResponseAsync(string response) { TradingRate rate = new TradingRate(); using (JsonTextReader jtr = new JsonTextReader(new StringReader(response))) { while (await jtr.ReadAsync().ConfigureAwait(false)) { if (jtr.Value != null) { if (jtr.Value.ToString() == "pair") { await jtr.ReadAsync().ConfigureAwait(false); rate.Pair = jtr.Value.ToString(); } else if (jtr.Value.ToString() == "rate") { await jtr.ReadAsync().ConfigureAwait(false); rate.Rate = Convert.ToDouble(jtr.Value.ToString()); } else { continue; } } } } return(rate); }
/// <summary> /// Finds exchange rates for all valid coin pairs. /// </summary> /// <returns>List of exchange rates.</returns> internal static async Task <List <TradingRate> > GetAllRatesAsync() { List <TradingRate> RateList = new List <TradingRate>(); List <TradingPair> PairList = await TradingPair.GetAllPairsAsync().ConfigureAwait(false); foreach (TradingPair tp in PairList) { TradingRate NewRate = await GetRateAsync(tp.Pair).ConfigureAwait(false); RateList.Add(NewRate); } return(RateList); }
/// <summary> /// Finds exchange rate for specified coin pair. /// </summary> /// <param name="Ticker1">Ticker symbol for coin to exchange.</param> /// <param name="Ticker2">Ticker symbol for resulting coin.</param> /// <returns>Exchange rate.</returns> public static async Task <TradingRate> GetExchangeRateAsync(string Ticker1, string Ticker2) => await TradingRate.GetRateAsync(Ticker1, Ticker2).ConfigureAwait(false);
/// <summary> /// Finds exchange rates for all valid coin pairs. /// </summary> /// <returns>List of exchange rates.</returns> public static async Task <List <TradingRate> > GetAllExchangeRatesAsync() => await TradingRate.GetAllRatesAsync().ConfigureAwait(false);
/// <summary> /// Finds exchange rate for specified coin pair. /// </summary> /// <param name="Pair">Coin pair to find rate for.</param> /// <returns>Exchange rate.</returns> public static async Task <TradingRate> GetExchangeRateAsync(string Pair) => await TradingRate.GetRateAsync(Pair).ConfigureAwait(false);