Esempio n. 1
0
		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;
		}
Esempio n. 2
0
		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;
		}