public bool DoFixups(bool asContainer, ObjectManager manager, bool strict)
{
BaseFixupRecord prevFixup = null;
BaseFixupRecord fixup = asContainer ? FixupChainAsContainer : FixupChainAsRequired;
bool allFixed = true;
while (fixup != null)
{
if (fixup.DoFixup(manager, strict))
{
UnchainFixup(fixup, prevFixup, asContainer);
if (asContainer)
{
fixup.ObjectRequired.RemoveFixup(fixup, false);
}
else
{
fixup.ObjectToBeFixed.RemoveFixup(fixup, true);
}
}
else
{
prevFixup = fixup;
allFixed = false;
}
fixup = asContainer ? fixup.NextSameContainer : fixup.NextSameRequired;
}
return(allFixed);
}