// =====>>>>>>>>>> JSONText Message Received public override void OnWebSocketJSONText(string JSONText) { try { string ObjJSONText; List <object> PGBaseList = JsonConvert.DeserializeObject <List <object> >(JSONText); foreach (var PGBase in PGBaseList) { ObjJSONText = PGBase.ToString(); PolygonBase pGBase = JsonConvert.DeserializeObject <PolygonBase>(ObjJSONText); switch (pGBase.ev) { case "C": ForexQuote quote = JsonConvert.DeserializeObject <ForexQuote>(ObjJSONText); if (quote != null) { OnForexQuoteEvent?.Invoke(quote); } break; case "CA": ForexAggregate forexAgg = JsonConvert.DeserializeObject <ForexAggregate>(ObjJSONText); if (forexAgg != null) { OnForexAggEvent?.Invoke(forexAgg); } break; case "status": Status StatusIn = JsonConvert.DeserializeObject <Status>(ObjJSONText); HandleStatusMessage(StatusIn); break; default: break; } } } catch (System.Exception ex) { HandleJSONTextException("websocket_MessageReceived", JSONText, ex); } }
private void OnForexAgg(ForexAggregate forexAgg) { string Text; if (IsJSONTextMode) { Text = JsonConvert.SerializeObject(forexAgg); } else { Text = $"Quote: Pair: {forexAgg.pair}, " + $"Open: {forexAgg.o}, Close: {forexAgg.c}, " + $"High: {forexAgg.h}, Low: {forexAgg.l}, " + $"Volume: {forexAgg.v} EST" + $"Tick Start: {PGBase.UnixTimestampMillisToESTDateTime( forexAgg.s )} EST"; } AppendText(Text); }
internal void OnForexAgg(ForexAggregate forexAgg) { RTDataRec Rec = GetRTDataRec(forexAgg.pair, PGClusterNames.Crypto); Rec.LastSize = forexAgg.v; }