Ejemplo n.º 1
0
        public async Task <List <CandleStick> > GetCandleStickData(int minutes, int granularity, string productId)
        {
            if (!CheckGranularity(granularity))
            {
                return(null);
            }

            List <CandleStick>     candleList = new List <CandleStick>();
            IEnumerable <object[]> candleDataList;
            string start = DateTime.UtcNow.AddMinutes(-minutes).ToString("o");
            string end   = DateTime.UtcNow.ToString("o");

            try
            {
                APIConnect api = new APIConnect();

                var queryString = api.BuildQuery(new KeyValuePair <string, string>("start", start), new KeyValuePair <string, string>("end", end),
                                                 new KeyValuePair <string, string>("granularity", granularity.ToString()));
                var uriString = $"/products/{productId}/candles" + queryString;

                var response = await api.CallStringAsync(uriString);

                candleDataList = JsonConvert.DeserializeObject <IEnumerable <object[]> >(response);

                foreach (var item in candleDataList)
                {
                    candleList.Add(new CandleStick()
                    {
                        Time   = Int32.Parse(item[0].ToString()),
                        Low    = Convert.ToDouble(item[1].ToString()),
                        High   = Convert.ToDouble(item[2].ToString()),
                        Open   = Convert.ToDouble(item[3].ToString()),
                        Close  = Convert.ToDouble(item[4].ToString()),
                        Volume = Convert.ToDouble(item[5].ToString())
                    });
                }
            }
            catch (HttpResponseException ex)
            {
                throw ex;
            }

            return(candleList);
        }