Esempio n. 1
0
            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);
        }