static ContentFieldData ToFieldData(IDictionary <string, object> source, IComplexGraphType type) { var result = new ContentFieldData(); foreach (var field in type.Fields) { if (source.TryGetValue(field.Name, out var value)) { if (value is IEnumerable <object> list && field.ResolvedType.Flatten() is IComplexGraphType nestedType) { var array = new JsonArray(list.Count()); foreach (var item in list) { if (item is JsonObject nested) { array.Add(nested); } } result[field.SourceName()] = array; } else { result[field.SourceName()] = JsonGraphType.ParseJson(value); } } } return(result); }
public override object ParseDictionary(IDictionary <string, object> value) { var result = JsonValue.Object(); foreach (var field in Fields) { if (value.TryGetValue(field.Name, out var fieldValue)) { result[field.SourceName()] = JsonGraphType.ParseJson(fieldValue); } } return(result); }