Sage.Modules.ModuleResult.AppendOrPrependDataNode C# (CSharp) Метод

AppendOrPrependDataNode() приватный Метод

private AppendOrPrependDataNode ( XmlNode dataNode, bool prepend ) : XmlNode
dataNode System.Xml.XmlNode
prepend bool
Результат System.Xml.XmlNode
        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);
        }