Beispiel #1
0
        // =====>>>>>>>>>> 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;
        }