private void ParseResponse(NikoMessage message) { List <object> data; var parser = PayloadParserFactory.GetParser(message.Method); try { data = parser.Parse((JsonElement)message.Params); } catch (Exception e) { var error = new ResponseError(Constants.Errors.MessageParsingError, e.Message, message.Method); _messageObservable.MessageReceived(new Message(message.Method, error)); return; } _messageObservable.MessageReceived(new Message(message.Method, data)); Logger.WriteInfo($"{data?.Count ?? 0} item(s) received."); if (Logger.IsEnabled && data != null) { Logger.WriteReceived(JsonSerializer.Serialize(data)); } }
private void ParseError(NikoMessage message) { var parser = PayloadParserFactory.GetParser(Constants.Messages.Error); var errorraw = parser.Parse((JsonElement)message.Params).Cast <IError>().ToList(); var error = new ResponseError(errorraw.First().ErrCode, errorraw.First().ErrMessage, message.Method); _messageObservable.MessageReceived(new Message(message.Method, error)); }