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); } }