Ejemplo n.º 1
0
        internal bool GetXmlNode(out XmlNode outNode, bool forceCreate)
        {
            outNode = null;
            bool         success = false;
            XmlNode      parent;
            XmlNode      node;
            XmlAttribute attr;

            // See if we can find it first
            _xmlNode = UserData.SelectSingleNode("./esUserData/Drivers/Driver[@Name='" + this._driverString + "']");

            if (null == _xmlNode)
            {
                node = UserData.SelectSingleNode("./esUserData");
                if (node == null)
                {
                    node = UserData.CreateNode(XmlNodeType.Element, "esUserData", null);
                    UserData.AppendChild(node);

                    attr       = _userData.CreateAttribute("Version");
                    attr.Value = esPlugIn.esVersion;

                    node.Attributes.Append(attr);

                    parent = node;
                }
                else
                {
                    parent = node;
                }

                node = UserData.SelectSingleNode("./esUserData/Drivers");
                if (node == null)
                {
                    node = _userData.CreateNode(XmlNodeType.Element, "Drivers", null);
                    parent.AppendChild(node);
                    parent = node;
                }
                else
                {
                    parent = node;
                }

                // By definition we have to create the driver because we checked first above ...
                node = _userData.CreateNode(XmlNodeType.Element, "Driver", null);
                parent.AppendChild(node);

                attr       = _userData.CreateAttribute("Name");
                attr.Value = this._driverString;

                node.Attributes.Append(attr);

                _xmlNode = node;
            }

            if (null != _xmlNode)
            {
                outNode = _xmlNode;
                success = true;
            }

            return(success);
        }