public CryptoCoinResponse MapCoinCapResponseToCryptoCoinResponse(CoinCapResponse response) { var result = new CryptoCoinResponse(); // Mapping a list var coinList = new List <CryptoCoinInfo>(); foreach (var coin in response.Coins) { var coinInfo = new CryptoCoinInfo() { Available_supply = Convert.ToDecimal(coin.Available_supply), Id = coin.Id, Last_updated = Convert.ToInt32(coin.Last_updated), Market_cap_usd = Convert.ToDecimal(coin.Market_cap_usd), Name = coin.Name, Percent_change_1h = Convert.ToDecimal(coin.Percent_change_1h), Percent_change_24h = Convert.ToDecimal(coin.Percent_change_24h), Percent_change_7d = Convert.ToDecimal(coin.Percent_change_7d), Price_btc = Convert.ToDecimal(coin.Price_btc), Price_usd = Convert.ToDecimal(coin.Price_usd), Rank = Convert.ToInt32(coin.Rank), Symbol = coin.Symbol, Total_supply = Convert.ToDecimal(coin.Total_supply), volume_usd_24H = Convert.ToDecimal(coin.volume_usd_24H) }; coinList.Add(coinInfo); } result.Coins = coinList.AsEnumerable(); return(result); }
public CoinCapResponse GetCoinCapData(CoinCapRequest coinCapRequest) { var serviceUrl = _serviceEndpoints.Services["CryptoCoinService"].Url; var httpClient = _httpClientFactory.Create(serviceUrl); //var stringContent = new StringContent(JsonConvert.SerializeObject(coinCapRequest), Encoding.UTF8, "application/json"); //var response = await httpClient.PostAsync(baseAddress, stringContent); var baseAddress = new Uri(serviceUrl); UriBuilder serviceUri = new UriBuilder(baseAddress); serviceUri.Query = "limit=" + coinCapRequest.Limit + "&convert=" + coinCapRequest.Convert; var response = httpClient.GetAsync(serviceUri.Uri).Result; if (response.IsSuccessStatusCode) { var responseData = response.Content.ReadAsStringAsync().Result; var dataList = JsonConvert.DeserializeObject <List <CapCoinInfo> >(responseData); var result = new CoinCapResponse(); result.Coins = dataList.AsEnumerable(); return(result); } return(new CoinCapResponse()); }