Beispiel #1
0
        private static void ProcessCase(JsonReader reader, List<string> list, Func<string, string, bool> statusFilter)
        {
            Debug.Assert(reader.TokenType == JsonToken.StartObject);

            reader.Read();

            string className = null;
            string name = null;
            string status = null;
            do
            {
                if (reader.TokenType == JsonToken.PropertyName)
                {
                    var propertyName = (string)reader.Value;
                    switch (propertyName)
                    {
                        case "name":
                            name = reader.ReadAsString(); ;
                            break;
                        case "className":
                            className = reader.ReadAsString();
                            break;
                        case "status":
                            status = reader.ReadAsString();
                            break;
                        default:
                            reader.ReadProperty();
                            break;
                    }
                }
                else
                {
                    reader.Read();
                }

            } while (reader.TokenType != JsonToken.EndObject && reader.TokenType != JsonToken.None);

            if (className != null && name != null && status != null)
            {
                var fullName = $"{className}.{name}";
                if (statusFilter(fullName, status))
                {
                    list.Add(fullName);
                }
            }

            // Read the closing } for the case
            if (reader.TokenType == JsonToken.EndObject)
            {
                reader.Read();
            }
        }