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);
        }
Пример #2
0
        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());
        }