/// <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)); }