private static void WriteAddOrRemovePropertyTypes(ContentListType origSet, ContentListType newSet, List <PropertySet> modifiedPropertySets, SchemaWriter writer)
{
bool origSetChanged = false;
if (origSet == null)
{
// New NodeType: add all property
foreach (PropertyType propType in newSet.PropertyTypes)
{
writer.AddPropertyTypeToPropertySet(propType, newSet, true);
}
return;
}
// Delete PropertyType if needed
foreach (PropertyType propType in GetTypesToDelete <PropertyType>(origSet.PropertyTypes, newSet.PropertyTypes))
{
writer.RemovePropertyTypeFromPropertySet(propType, newSet);
origSetChanged = true;
}
// Create or modify PropertyTypes
foreach (PropertyType propType in newSet.PropertyTypes)
{
if (NeedToCreate <PropertyType>(origSet.PropertyTypes, propType))
{
writer.AddPropertyTypeToPropertySet(propType, newSet, true);
origSetChanged = true;
}
}
if (origSetChanged && !modifiedPropertySets.Contains(origSet))
{
modifiedPropertySets.Add(origSet);
}
}