private void AddTypeToSortedList(List<MetadataType> allTypes, List<MetadataType> sortedTypes, MetadataType metadataType)
{
if (sortedTypes.Contains(metadataType))
return;
if (metadataType == null)
return;
if (metadataType.Inherits == null)
{
sortedTypes.Add(metadataType);
return;
}
var inheritedMetadataType = FindMetadataTypeByMetadataTypeName(allTypes, metadataType.Inherits);
// Find and add base class first
AddTypeToSortedList(allTypes,sortedTypes, inheritedMetadataType);
if (!sortedTypes.Contains(metadataType))
sortedTypes.Add(metadataType);
}