in client/ClientDecisionServiceTest/RawStringConverter.cs [24:120]
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
var sb = new StringBuilder();
JsonToken previousToken = JsonToken.None;
int depth = 0;
do
{
if (sb.Length > 0)
{
if (!reader.Read())
{
break;
}
if ((previousToken == JsonToken.Boolean
|| previousToken == JsonToken.Date || previousToken == JsonToken.String
|| previousToken == JsonToken.Float || previousToken == JsonToken.Integer
|| previousToken == JsonToken.Raw || previousToken == JsonToken.Null
|| previousToken == JsonToken.Bytes) &&
(reader.TokenType != JsonToken.EndArray && reader.TokenType != JsonToken.EndObject))
{
sb.Append(",");
}
else if ((previousToken == JsonToken.EndObject && reader.TokenType == JsonToken.StartObject)
|| (previousToken == JsonToken.EndArray && reader.TokenType == JsonToken.StartArray))
{
sb.Append(",");
}
}
switch (reader.TokenType)
{
case JsonToken.PropertyName:
if (previousToken == JsonToken.EndObject || previousToken == JsonToken.EndArray)
{
sb.Append(',');
}
sb.AppendFormat(CultureInfo.InvariantCulture, "\"{0}\":", reader.Value);
break;
case JsonToken.Boolean:
sb.AppendFormat((bool)reader.Value ? "true" : "false");
break;
case JsonToken.Bytes:
case JsonToken.Comment:
case JsonToken.Integer:
case JsonToken.Float:
sb.AppendFormat(CultureInfo.InvariantCulture, "{0}", reader.Value);
break;
case JsonToken.Date:
sb.Append(JsonConvert.SerializeObject(reader.Value));
break;
case JsonToken.Null:
sb.Append("null");
break;
case JsonToken.String:
sb.AppendFormat(CultureInfo.InvariantCulture, "\"{0}\"", reader.Value);
break;
case JsonToken.Raw:
sb.Append(reader.Value);
break;
case JsonToken.StartArray:
sb.Append('[');
depth++;
break;
case JsonToken.EndArray:
sb.Append(']');
depth--;
break;
case JsonToken.StartObject:
sb.Append('{');
depth++;
break;
case JsonToken.EndObject:
sb.Append('}');
depth--;
break;
}
previousToken = reader.TokenType;
}
while (depth > 0);
return sb.ToString();
}