コード例 #1
0
        public async Task <IReadOnlyCollection <Quote> > GetQuotesSnapshotAsync(params string[] securityIds)
        {
            var parsedIds = SecurityIdCollection.TryParse(securityIds).ToList();

            if (parsedIds.Count == 0)
            {
                return(new List <Quote>(0));
            }

            using (var client = new HttpClient()
            {
                BaseAddress = baseUrl
            })
            {
                var symbols = string.Join(",", parsedIds);

                var results = await client.GetStringAsync("info?client=ig&q=" + exchange + ":" + symbols).ConfigureAwait(false);

                var obj = (dynamic)Newtonsoft.Json.JsonConvert.DeserializeObject(results.Substring(4));

                var quotes = new List <Quote>(obj.Count);

                foreach (var quote in obj)
                {
                    quotes.Add(new Quote((string)quote.t, (decimal)quote.l, (decimal)quote.c));
                }

                return(quotes);
            }
        }