Example #1
0
        public static JsonEncodedEventMessage Deserialize(string jsonString)
        {
            JsonEncodedEventMessage msg = null;

            try { msg = (JsonEncodedEventMessage)MiniJSON.Json.Deserialize(jsonString); }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
            }
            return(msg);
        }
        public static EventMessage Deserialize(string rawMessage)
        {
            EventMessage evtMsg = new EventMessage();

            //  '5:' [message id ('+')] ':' [message endpoint] ':' [json encoded event]
            //   5:1::{"a":"b"}
            evtMsg.RawMessage = rawMessage;
            try
            {
                string[] args = rawMessage.Split(SPLITCHARS, 4);                 // limit the number of pieces
                if (args.Length == 4)
                {
                    int id;
                    if (int.TryParse(args[1], out id))
                    {
                        evtMsg.AckId = id;
                    }
                    evtMsg.Endpoint    = args[2];
                    evtMsg.MessageText = args[3];

                    if (!string.IsNullOrEmpty(evtMsg.MessageText) &&
                        evtMsg.MessageText.Contains("name") &&
                        evtMsg.MessageText.Contains("args"))
                    {
                        evtMsg.Json  = JsonEncodedEventMessage.Deserialize(evtMsg.MessageText);
                        evtMsg.Event = evtMsg.Json.name;
                    }
                    else
                    {
                        evtMsg.Json = new JsonEncodedEventMessage();
                    }
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex);
            }
            return(evtMsg);
        }