コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
        }