private void ReadObject(JsonReader reader, ComplexValueResult value)
        {
            while (reader.Read())
            {
                var key = "";

                if (reader.TokenType == JsonToken.PropertyName)
                {
                    key = reader.Value.ToString();

                    reader.Read();
                }

                if (reader.TokenType == JsonToken.Null)
                {
                    value.SingleValues.Add(key, null);
                }

                if (reader.TokenType == JsonToken.String)
                {
                    value.SingleValues.Add(key, reader.Value.ToString());
                }

                if (reader.TokenType == JsonToken.Date)
                {
                    var datetime = (DateTime)reader.Value;
                    value.SingleValues.Add(key, datetime.ToString("yyyy-MM-dd'T'HH:mm:ss'.'fff'Z'"));
                }

                if (reader.TokenType == JsonToken.EndObject)
                {
                    break;
                }
            }
        }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var output = new Result.OutputDto();
            var key    = "";

            while (reader.Read())
            {
                if (reader.TokenType == JsonToken.PropertyName)
                {
                    key = reader.Value.ToString();
                }

                if (reader.TokenType == JsonToken.Date || reader.TokenType == JsonToken.String)
                {
                    output.SingleValues.Add(ReadProperty(reader, key));
                }

                if (reader.TokenType == JsonToken.StartObject)
                {
                    var    complex    = new ComplexValueResult();
                    string currentKey = null;

                    while (reader.Read())
                    {
                        if (reader.TokenType == JsonToken.EndObject)
                        {
                            break;
                        }

                        if (reader.TokenType == JsonToken.PropertyName)
                        {
                            currentKey = reader.Value.ToString();
                        }

                        if (reader.TokenType == JsonToken.String)
                        {
                            complex.SingleValues.Add(ReadProperty(reader, currentKey));
                        }
                    }

                    output.ComplexValues.Add(key, complex);
                }

                if (reader.TokenType == JsonToken.StartArray)
                {
                    var multiValue = ReadArray(reader);

                    output.MultiValues.Add(key, multiValue);
                }
            }

            return(output);
        }
Ejemplo n.º 3
0
        private static void MapComplex(Output arg, OutputDto output)
        {
            foreach (var value in arg.ComplexValues)
            {
                var vals = new ComplexValueResult();

                foreach (var simpleValue in value.SimpleValues)
                {
                    vals.SingleValues.Add(simpleValue.Key, simpleValue.Value);
                }

                output.ComplexValues.Add(value.Key, vals);
            }
        }
        private IMultiValueResult ReadComplexArray(JsonReader reader)
        {
            var complexArray = new MultiComplexValueResult();

            while (true)
            {
                if (reader.TokenType == JsonToken.EndArray)
                {
                    return(complexArray);
                }

                var complex = new ComplexValueResult();

                ReadObject(reader, complex);

                complexArray.ComplexValues.Add(complex);

                reader.Read();
            }
        }
Ejemplo n.º 5
0
        private static void MapMulti(Output arg, OutputDto output)
        {
            foreach (var value in arg.MultiValues)
            {
                if (value.SimpleValues.Any())
                {
                    var multi = new MultiSingleValueResult();

                    foreach (var simpleValue in value.SimpleValues)
                    {
                        multi.SingleValues.Add(simpleValue);
                    }

                    output.MultiValues.Add(value.Key, multi);
                }

                if (value.ComplexValues.Any())
                {
                    var multi = new MultiComplexValueResult();

                    foreach (var complexValue in value.ComplexValues)
                    {
                        var complexValueResult = new ComplexValueResult();

                        foreach (var simpleValue in complexValue.SimpleValues)
                        {
                            complexValueResult.SingleValues.Add(simpleValue.Key, simpleValue.Value);
                        }

                        multi.ComplexValues.Add(complexValueResult);
                    }

                    output.MultiValues.Add(value.Key, multi);
                }
            }
        }