a7DocumentDbStudio.ViewModel.CollectionVM.addAvailableProperty C# (CSharp) Method

addAvailableProperty() private method

private addAvailableProperty ( JToken jt ) : void
jt JToken
return void
        private void addAvailableProperty(JToken jt)
        {
            if (jt is JProperty)
            {
                var jp = jt as JProperty;
                if (jp.Value.Type == JTokenType.Array)
                    return; //TODO: array not supported yet
                if (jp.Value.Type == JTokenType.Object)
                {
                    foreach (var childJt in jp.Children())
                    {
                            addAvailableProperty(childJt);
                    }
                }
                else
                {
                    if (!this.AvailableProperties.Any(p => p.Path == jp.Path))
                    {
                        this.AvailableProperties.Add(new PropertyDefinitionModel
                        {
                            Name = jp.Name,
                            Path = jp.Path,
                            Type = jp.Value.Type.ToPropertyType()
                        });
                    }
                }
            }
            else if(jt is JObject)
            {
                foreach(var childJr in jt.Children())
                {
                    addAvailableProperty(childJr);
                }
            }
        }
    }