public async Task<OrderbookResponse> GetOrderbook(OrderbookRequest request) { var response = new OrderbookResponse (); var client = this.ApiClient (); client.QueryString.Add ("currencypair", request.ExchangeMarketRef); string rawData = await client.DownloadStringTaskAsync (this.OrderbookApiUri); var jsonData = JToken.Parse (rawData); DateTime reportedTime = Utilities.GetDateTimeFromUnixTimestamp( jsonData ["data"] ["now"].Value<long> () / 1000000 ); response.AddRange ( from rawOrder in jsonData["data"]["bids"] select new Order () { ExchangeMarketCD = request.ExchangeMarketCD, Price = Decimal.Parse (rawOrder ["price"].Value<string> ()), Amount = Decimal.Parse (rawOrder ["amount"].Value<string> ()), OrderType = OrderType.BidOrder, RawData = Encoding.ASCII.GetBytes (rawOrder.ToString ()), ReportedTime = reportedTime, LastSeen = DateTimeOffset.UtcNow } ); response.AddRange ( from rawOrder in jsonData["data"]["asks"] select new Order () { ExchangeMarketCD = request.ExchangeMarketCD, Price = Decimal.Parse (rawOrder ["price"].Value<string> ()), Amount = Decimal.Parse (rawOrder ["amount"].Value<string> ()), OrderType = OrderType.AskOrder, RawData = Encoding.ASCII.GetBytes (rawOrder.ToString ()), ReportedTime = reportedTime, LastSeen = DateTimeOffset.UtcNow } ); return response; }
public async Task<OrderbookResponse> GetOrderbook(OrderbookRequest request) { var response = new OrderbookResponse (); var client = this.ApiClient (); client.QueryString.Add ("currencypair", request.ExchangeMarketRef); string rawData = await client.DownloadStringTaskAsync (this.OrderbookApiUri); var jsonData = JToken.Parse (rawData); response.AddRange ( from rawOrder in jsonData["orderbook"]["bids"] select new Order () { ExchangeMarketCD = request.ExchangeMarketCD, Amount = Decimal.Parse (rawOrder [1].Value<string> ()), Price = Decimal.Parse (rawOrder [0].Value<string> ()), OrderType = OrderType.BidOrder, RawData = Encoding.ASCII.GetBytes (rawOrder.ToString ()), LastSeen = DateTimeOffset.UtcNow } ); response.AddRange ( from rawOrder in jsonData["orderbook"]["asks"] select new Order () { ExchangeMarketCD = request.ExchangeMarketCD, Amount = Decimal.Parse (rawOrder[1].Value<string> ()), Price = Decimal.Parse (rawOrder[0].Value<string> ()), OrderType = OrderType.AskOrder, RawData = Encoding.ASCII.GetBytes (rawOrder.ToString ()), LastSeen = DateTimeOffset.UtcNow } ); return response; }