public ActionResult GetCoinHistory(string coin) { // try // { string url = "https://coinbin.org/" + coin + "/history"; HttpWebRequest request = HttpWebRequest.CreateHttp(url); request.UserAgent = @"User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader rd = new StreamReader(response.GetResponseStream()); string data = rd.ReadToEnd(); JObject o = JObject.Parse(data); List <JToken> coins = o["history"].ToList(); List <CoinHistory> lh = new List <CoinHistory>(); CoinHistory hist = new CoinHistory(); //we stop when there is not history //if (coins.Count == 0) foreach (var item in coins) { hist = new CoinHistory(); hist.currency = item["value.currency"].ToString(); hist.value = double.Parse(item["value"].ToString()); hist.when = item["when"].ToString(); hist.timestamp = DateTime.Parse(item["timestamp"].ToString()); lh.Add(hist); } // double lastv = double.Parse(coins.OrderByDescending(f => f["timestamp"]).First()["value"].ToString()); return(View(lh)); //} //catch (Exception) //{ // return View(); //} }
public async Task <CoinHistory> RetrieveCoinHistory(string coin, int days) { var history = new CoinHistory(); using (var httpClient = new HttpClient()) { var historyInfo = string.Empty; if (days == 0) { historyInfo = await httpClient.GetStringAsync($"{baseAddress}/history/{coin}"); } else { historyInfo = await httpClient.GetStringAsync($"{baseAddress}/history/{days}DAY/{coin}"); } history = JsonConvert.DeserializeObject <CoinHistory>(historyInfo); } return(history); }
public async Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken) { iprot.IncrementRecursionDepth(); try { TField field; await iprot.ReadStructBeginAsync(cancellationToken); while (true) { field = await iprot.ReadFieldBeginAsync(cancellationToken); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.List) { { TList _list105 = await iprot.ReadListBeginAsync(cancellationToken); Historys = new List <CoinHistory>(_list105.Count); for (int _i106 = 0; _i106 < _list105.Count; ++_i106) { CoinHistory _elem107; _elem107 = new CoinHistory(); await _elem107.ReadAsync(iprot, cancellationToken); Historys.Add(_elem107); } await iprot.ReadListEndAsync(cancellationToken); } } else { await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken); } break; case 2: if (field.Type == TType.Struct) { Balance = new Coin(); await Balance.ReadAsync(iprot, cancellationToken); } else { await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken); } break; case 3: if (field.Type == TType.Bool) { HasNext = await iprot.ReadBoolAsync(cancellationToken); } else { await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken); } break; default: await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken); break; } await iprot.ReadFieldEndAsync(cancellationToken); } await iprot.ReadStructEndAsync(cancellationToken); } finally { iprot.DecrementRecursionDepth(); } }
public void Read(TProtocol iprot) { iprot.IncrementRecursionDepth(); try { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.List) { { Historys = new List <CoinHistory>(); TList _list185 = iprot.ReadListBegin(); for (int _i186 = 0; _i186 < _list185.Count; ++_i186) { CoinHistory _elem187; _elem187 = new CoinHistory(); _elem187.Read(iprot); Historys.Add(_elem187); } iprot.ReadListEnd(); } } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 2: if (field.Type == TType.Struct) { Balance = new Coin(); Balance.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 3: if (field.Type == TType.Bool) { HasNext = iprot.ReadBool(); } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); } finally { iprot.DecrementRecursionDepth(); } }