Esempio n. 1
0
        private DataSchema CreateItems(SchemaObject schemaObject)
        {
            var result = new DataSchema {
                Type = SchemaDataTypeExtensions.ConvertFromString(schemaObject.ArrayItemType)
            };

            if (schemaObject.IsDocumentArray)
            {
                result.Properties = CreateProperties(schemaObject);
            }
            return(result);
        }
Esempio n. 2
0
        private IDictionary <string, DataSchema> CreateProperties(SchemaObject schemaObject)
        {
            var properties = new Dictionary <string, DataSchema>();

            foreach (KeyValuePair <string, dynamic> property in schemaObject.ObjectSchema.Properties)
            {
                var propertyDataSchema = new DataSchema
                {
                    Type = SchemaDataTypeExtensions.ConvertFromString(property.Value.Type)
                };

                properties.Add(property.Key, propertyDataSchema);
            }
            properties.Add("Id", new DataSchema
            {
                Type = SchemaDataType.String
            });
            properties.Add("DisplayName", new DataSchema
            {
                Type = SchemaDataType.String
            });
            return(properties);
        }
Esempio n. 3
0
        private void FillDataSchema(DataSchema partialObject, SchemaObject schemaObject)
        {
            var root    = schemaObject;
            var members = new List <SchemaObject>();

            while (root != null)
            {
                members.Add(root);
                root = root.Parent;
            }

            members.Reverse();

            partialObject.Properties = partialObject.Properties ?? new Dictionary <string, DataSchema>();

            for (var i = 0; i < members.Count; i++)
            {
                if (partialObject.Properties.ContainsKey(members[i].Name))
                {
                    continue;
                }


                if (members[i].Parent == null)
                {
                    if (members[i].IsArray)
                    {
                        partialObject.Properties.Add(members[i].Name, new DataSchema
                        {
                            Type  = SchemaDataTypeExtensions.ConvertFromString(members[i].Type),
                            Items = CreateItems(members[i])
                        });
                    }
                    else if (members[i].IsDocumentLink)
                    {
                        partialObject.Properties.Add(members[i].Name, new DataSchema
                        {
                            Type       = SchemaDataTypeExtensions.ConvertFromString(members[i].Type),
                            Properties = CreateProperties(members[i])
                        });
                    }
                    else
                    {
                        partialObject.Properties.Add(members[i].Name, new DataSchema
                        {
                            Type = SchemaDataTypeExtensions.ConvertFromString(members[i].Type)
                        });
                    }
                }
                else
                {
                    var dataSchema = FindProperty(partialObject, members[i]);

                    if (members[i].IsArray)
                    {
                        dataSchema.Type  = SchemaDataTypeExtensions.ConvertFromString(members[i].Type);
                        dataSchema.Items = CreateItems(members[i]);
                    }
                    else if (members[i].IsDocumentLink)
                    {
                        dataSchema.Type       = SchemaDataTypeExtensions.ConvertFromString(members[i].Type);
                        dataSchema.Properties = CreateProperties(members[i]);
                    }
                    else
                    {
                        dataSchema.Type = SchemaDataTypeExtensions.ConvertFromString(members[i].Type);
                    }
                }
            }
        }