public async Task <IActionResult> Order(int bookId)
        {
            String token = orderBookToken;

            if (token == null)
            {
                var payment = await getToken(
                    new DateRange(DateTime.Today, DateTime.Today.AddDays(2.0)), "OrderBook");

                if (payment is ErrorViewModel)
                {
                    return(View("~/Views/Shared/Error.cshtml", payment));
                }
                token = payment as String;
            }

            LibraryServiceSoapClient.EndpointConfiguration endpointConfiguration = LibraryServiceSoapClient.EndpointConfiguration.LibraryServiceSoap;
            var client  = new LibraryServiceSoapClient(endpointConfiguration);
            var request = new OrderBookRequest();

            request.Body = new OrderBookRequestBody(defaultToken, bookId);
            var result = await client.OrderBookAsync(defaultToken, bookId);

            if (result.Body.OrderBookResult == false)
            {
                return(View("Error"));
            }


            return(Redirect("AllBooks"));
        }
示例#2
0
        public void SubscribeL2(string symbol)
        {
            OrderBookRequest l2 = new OrderBookRequest
            {
                Action  = ActionType.Subscribe,
                Channel = ChannelType.L2,
                Symbol  = symbol
            };

            AddMessageToQueue(l2);
        }
示例#3
0
        public void UnsubscribeL3(string symbol)
        {
            OrderBookRequest l3 = new OrderBookRequest
            {
                Action  = ActionType.Unsubscribe,
                Channel = ChannelType.L3,
                Symbol  = symbol
            };

            AddMessageToQueue(l3);
        }
示例#4
0
        public async Task <IActionResult> Order(int bookId)
        {
            LibraryServiceSoapClient.EndpointConfiguration endpointConfiguration = LibraryServiceSoapClient.EndpointConfiguration.LibraryServiceSoap;
            var client  = new LibraryServiceSoapClient(endpointConfiguration);
            var request = new OrderBookRequest();

            request.Body = new OrderBookRequestBody(token, bookId);
            var result = await client.OrderBookAsync(request);

            if (result.Body.OrderBookResult == false)
            {
                return(View("Error"));
            }


            return(Redirect("AllBooks"));
        }
 public async Task <OrderBook> GetOrderBookAsync(OrderBookRequest request)
 {
     return(await this.httpClient.GetAsync <OrderBook>($"{baseUrl}/api/v1/depth{Query(request)}"));
 }
 public OrderBook GetOrderBook(OrderBookRequest request) => GetOrderBookAsync(request).GetAwaiter().GetResult();
示例#7
0
 public Task <CurrencyPairDictionary <OrderBook> > GetOrderBookAsync(OrderBookRequest request, CancellationToken cancellationToken = default)
 {
     return(_client.PostAsync <CurrencyPairDictionary <OrderBook> >("order_book", request, cancellationToken));
 }
示例#8
0
 public async Task <OrderBookResponse> GetOrderBook(OrderBookRequest request)
 {
     return(await GetResult <OrderBookResponse>(PublicApiCall.GetOrderBook, GetQueryString((object)request)));
 }
示例#9
0
        public async Task GetOrderBook()
        {
            _fakeHttpMessageHandler.HandleRequestAsync = TestHelper.HandleContent(form =>
            {
                Assert.Equal("BTC_USD,ETH_USD", form["pair"]);
                Assert.Equal("100", form["limit"]);
            });
            _fakeHttpMessageHandler.ResponseMessage = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent("{\"BTC_USD\":{\"ask_quantity\":\"235.41991633\",\"ask_amount\":\"3088819.24758049\",\"ask_top\":\"6610\",\"bid_quantity\":\"12611.67298966\",\"bid_amount\":\"893817.34468224\",\"bid_top\":\"6606.44420123\",\"ask\":[[\"6610\",\"0.00810449\",\"53.5706789\"],[\"6618.219999\",\"0.00035049\",\"2.31961992\"]],\"bid\":[[\"6606.44420123\",\"0.69964951\",\"4622.19544823\"],[\"6606.44420023\",\"0.035\",\"231.225547\"]]},\"ETH_USD\":{\"ask_quantity\":\"4478.66555066\",\"ask_amount\":\"3220720.74282515\",\"ask_top\":\"137.59999989\",\"bid_quantity\":\"12463.56016804\",\"bid_amount\":\"248035.82535663\",\"bid_top\":\"136.83096645\",\"ask\":[[\"137.59999989\",\"28\",\"3852.79999692\"],[\"137.5999999\",\"0.22542189\",\"31.01805204\"]],\"bid\":[[\"136.83096645\",\"2.648\",\"362.32839915\"],[\"136.83096644\",\"4\",\"547.32386576\"]]}}")
            };

            var request = new OrderBookRequest
            {
                Pairs = new CurrencyPairCollection("BTC_USD", "ETH_USD"),
                Limit = 100
            };
            var orderBook = await _publicApi.GetOrderBookAsync(request);

            Assert.Equal(new CurrencyPair[] { "BTC_USD", "ETH_USD" }, orderBook.Keys);
            var btcUsd = orderBook["BTC_USD"];

            Assert.Equal(235.41991633m, btcUsd.AskQuantity);
            Assert.Equal(3088819.24758049m, btcUsd.AskAmount);
            Assert.Equal(6610m, btcUsd.AskTop);
            Assert.Equal(12611.67298966m, btcUsd.BidQuantity);
            Assert.Equal(893817.34468224m, btcUsd.BidAmount);
            Assert.Equal(6606.44420123m, btcUsd.BidTop);
            Assert.Equal(6610m, btcUsd.Ask[0].Price);
            Assert.Equal(0.00810449m, btcUsd.Ask[0].Quantity);
            Assert.Equal(53.5706789m, btcUsd.Ask[0].Amount);
            Assert.Equal(6618.219999m, btcUsd.Ask[1].Price);
            Assert.Equal(0.00035049m, btcUsd.Ask[1].Quantity);
            Assert.Equal(2.31961992m, btcUsd.Ask[1].Amount);
            Assert.Equal(6606.44420123m, btcUsd.Bid[0].Price);
            Assert.Equal(0.69964951m, btcUsd.Bid[0].Quantity);
            Assert.Equal(4622.19544823m, btcUsd.Bid[0].Amount);
            Assert.Equal(6606.44420023m, btcUsd.Bid[1].Price);
            Assert.Equal(0.035m, btcUsd.Bid[1].Quantity);
            Assert.Equal(231.225547m, btcUsd.Bid[1].Amount);
            var ethUsd = orderBook["ETH_USD"];

            Assert.Equal(4478.66555066m, ethUsd.AskQuantity);
            Assert.Equal(3220720.74282515m, ethUsd.AskAmount);
            Assert.Equal(137.59999989m, ethUsd.AskTop);
            Assert.Equal(12463.56016804m, ethUsd.BidQuantity);
            Assert.Equal(248035.82535663m, ethUsd.BidAmount);
            Assert.Equal(136.83096645m, ethUsd.BidTop);
            Assert.Equal(137.59999989m, ethUsd.Ask[0].Price);
            Assert.Equal(28m, ethUsd.Ask[0].Quantity);
            Assert.Equal(3852.79999692m, ethUsd.Ask[0].Amount);
            Assert.Equal(137.5999999m, ethUsd.Ask[1].Price);
            Assert.Equal(0.22542189m, ethUsd.Ask[1].Quantity);
            Assert.Equal(31.01805204m, ethUsd.Ask[1].Amount);
            Assert.Equal(136.83096645m, ethUsd.Bid[0].Price);
            Assert.Equal(2.648m, ethUsd.Bid[0].Quantity);
            Assert.Equal(362.32839915m, ethUsd.Bid[0].Amount);
            Assert.Equal(136.83096644m, ethUsd.Bid[1].Price);
            Assert.Equal(4m, ethUsd.Bid[1].Quantity);
            Assert.Equal(547.32386576m, ethUsd.Bid[1].Amount);
        }