/// <inheritdoc/> protected override void OnMessageReceived( String message) { try { var rootArray = JArray.Parse(message); foreach (var root in rootArray) { var stream = root["ev"].ToString(); switch (stream) { case TradesChannel: TradeReceived?.Invoke(root.ToObject <JsonStreamTrade>()); break; case QuotesChannel: QuoteReceived?.Invoke(root.ToObject <JsonStreamQuote>()); break; case MinuteAggChannel: MinuteAggReceived?.Invoke(root.ToObject <JsonStreamAgg>()); break; case SecondAggChannel: SecondAggReceived?.Invoke(root.ToObject <JsonStreamAgg>()); break; case StatusMessage: handleAuthorization(root.ToObject <JsonConnectionStatus>()); break; default: HandleError(new InvalidOperationException( $"Unexpected message type '{stream}' received.")); break; } } } catch (Exception exception) { HandleError(exception); } }
private void handleSecondAggChannel( JToken token) => SecondAggReceived.DeserializeAndInvoke <IStreamAgg, JsonStreamAgg>(token);