CIAPI.CodeGenerator.SchemaParser.RecurseHierarchyAndAppendProperties C# (CSharp) Method

RecurseHierarchyAndAppendProperties() public method

public RecurseHierarchyAndAppendProperties ( Newtonsoft.Json.Linq.JObject typeObject ) : void
typeObject Newtonsoft.Json.Linq.JObject
return void
        public void RecurseHierarchyAndAppendProperties(JObject typeObject)
        {
            var propertiesOfThisType = (JObject)typeObject["properties"];

            JObject baseTypeObject = GetBaseType(typeObject);
            while (baseTypeObject != null)
            {
                // merge properties from basetype here. you should ignore duplicate (overriden) properties as you dive into the inheritance chain

                var propertiesOfBaseType = (JObject)baseTypeObject["properties"];

                foreach (var kvp2 in propertiesOfBaseType)
                {
                    string baseTypePropertyName = kvp2.Key;
                    var baseTypePropertyObject = (JObject)kvp2.Value;

                    if (propertiesOfThisType[baseTypePropertyName] == null)
                    {
                        propertiesOfThisType[baseTypePropertyName] = baseTypePropertyObject;
                    }
                }

                // get next ancestor, if any
                baseTypeObject = GetBaseType(baseTypeObject);
            }
        }