static void AddTypes (XmlNode dest, XmlDocument source, string sourceDirectory)
{
var types = source.SelectSingleNode ("/Overview/Types");
if (types == null)
return;
foreach (XmlNode ns in types.ChildNodes) {
var n = ns.Attributes ["Name"].Value;
var nsd = dest.SelectSingleNode (string.Format ("Namespace[@Name='{0}']", n));
if (nsd == null) {
nsd = dest.OwnerDocument.CreateElement ("Namespace");
AddAttribute (nsd, "Name", n);
dest.AppendChild (nsd);
}
foreach (XmlNode t in ns.ChildNodes) {
if (!TypeInVersions (sourceDirectory, n, t))
continue;
var c = dest.OwnerDocument.ImportNode (t, true);
AddAttribute (c, "SourceDirectory", sourceDirectory);
nsd.AppendChild (c);
}
if (nsd.ChildNodes.Count == 0)
dest.RemoveChild (nsd);
}
}