Beispiel #1
0
        /// <inheritdoc />
        protected override async Task <CallResult <UpdateSubscription> > DoStart()
        {
            var subResult = await socketClient.SubscribeToOrderBookUpdatesAsync(Symbol, _limit, HandleUpdate).ConfigureAwait(false);

            if (!subResult.Success)
            {
                return(new CallResult <UpdateSubscription>(null, subResult.Error));
            }

            Status = OrderBookStatus.Syncing;
            // Slight wait to make sure the order book snapshot is from after the start of the stream
            await Task.Delay(300).ConfigureAwait(false);

            var queryResult = await client.GetOrderBookAsync(Symbol, _limit).ConfigureAwait(false);

            if (!queryResult.Success)
            {
                await socketClient.UnsubscribeAll().ConfigureAwait(false);

                return(new CallResult <UpdateSubscription>(null, queryResult.Error));
            }

            SetInitialOrderBook(queryResult.Data.Sequence, queryResult.Data.Bid, queryResult.Data.Ask);
            return(new CallResult <UpdateSubscription>(subResult.Data, null));
        }
        /// <inheritdoc />
        protected override async Task <CallResult <UpdateSubscription> > DoStart()
        {
            var subResult = await socketClient.SubscribeToOrderBookUpdatesAsync(Symbol, HandleUpdate).ConfigureAwait(false);

            if (!subResult.Success)
            {
                return(new CallResult <UpdateSubscription>(null, subResult.Error));
            }

            Status = OrderBookStatus.Syncing;
            var queryResult = await socketClient.GetOrderBookAsync(Symbol).ConfigureAwait(false);

            if (!queryResult.Success)
            {
                await socketClient.UnsubscribeAll().ConfigureAwait(false);

                return(new CallResult <UpdateSubscription>(null, queryResult.Error));
            }

            SetInitialOrderBook(queryResult.Data.Nonce, queryResult.Data.Buys, queryResult.Data.Sells);
            return(new CallResult <UpdateSubscription>(subResult.Data, null));
        }