private XmlNode AppendOrPrependDataNode(XmlNode dataNode, bool prepend)
{
Contract.Requires<ArgumentNullException>(dataNode != null);
Contract.Requires<InvalidOperationException>(this.ResultElement != null, "The ModuleResult.ResultElement property is null");
if (dataNode.NodeType == XmlNodeType.Document)
dataNode = ((XmlDocument) dataNode).DocumentElement;
XmlDocument ownerDocument = this.ResultElement.OwnerDocument;
XmlElement dataElement = this.ResultElement.SelectSingleElement("mod:data", XmlNamespaces.Manager);
XmlNode importedNode = ownerDocument.ImportNode(dataNode, true);
if (importedNode.Name == "mod:data")
{
if (dataElement == null)
return this.ResultElement.AppendChild(importedNode);
foreach (XmlNode node in importedNode)
dataElement.AppendChild(node);
return dataElement;
}
if (dataElement == null)
dataElement = this.ResultElement.AppendElement(ownerDocument.CreateElement("mod:data", XmlNamespaces.ModulesNamespace));
if (prepend)
{
return dataElement.InsertBefore(importedNode, dataElement.ChildNodes[0]);
}
return dataElement.AppendElement(importedNode);
}