private bool TryHandlePullResponses(string message) { if (MarketCandlestickPullResponse.TryParse(Serializer, message, out var marketCandlestick)) { Streams.CandlestickPullSubject.OnNext(marketCandlestick); return(true); } if (MarketDepthPullResponse.TryParse(Serializer, message, out var marketDepth)) { Streams.DepthPullSubject.OnNext(marketDepth); return(true); } if (MarketTradeDetailPullResponse.TryParse(Serializer, message, out var marketTradeDetail)) { Streams.TradeDetailPullSubject.OnNext(marketTradeDetail); return(true); } if (MarketDetailsPullResponse.TryParse(Serializer, message, out var marketDetails)) { Streams.MarketDetailsPullSubject.OnNext(marketDetails); return(true); } return(false); }
private void Handle(MarketDepthPullResponse msg) { var len = Math.Min(Math.Min(10, msg.Data?.Bids.Length ?? 0), msg.Data?.Asks.Length ?? 0); for (var i = 0; i < len; ++i) { var bid = msg.Data !.Bids[i]; var ask = msg.Data !.Asks[i]; _logger.LogInformation( $"Market depth update {msg.ParseSymbolFromTopic()} | [bid {i}: price={bid.Price} size={bid.Size}] [ask {i}: price={ask.Price} size={ask.Size}]"); } }