示例#1
0
        public void Call(string json)
        {
            var eventobject = JsonConvert.DeserializeObject <dynamic>(json);
            var eventname   = (string)eventobject.@event;
            var timestamp   = (DateTime)eventobject.timestamp;

            PreEventCall?.Invoke(eventname, timestamp, json);

            if (timestamp < IGNORE_DATE)
            {
                Debug.WriteLine($"Event ignored     : [{timestamp}] {eventname}]");
                return;
            }

            var modeltype = GetTypeByEventname(eventname);

            if (modeltype != null)
            {
                Debug.WriteLine($"Call event       : [{timestamp}] {eventname}");

                var model = default(EventModelBase);

                try
                {
                    model = (EventModelBase)JsonConvert.DeserializeObject(json, modeltype, _jsonsettings);
                }
                catch (Exception ex)
                {
                    Debug.WriteLine($"!!! Unkown format : [{timestamp}] {eventname} - {ex.Message}");
                    return;
                }

                EventCall?.Invoke(eventname, model);
                CallEvent(model);
            }
            else
            {
                Debug.WriteLine($"!!! Unkown event : [{timestamp}] {eventname}");
                UnkownEventCall?.Invoke(eventname, timestamp, json);
            }
        }