예제 #1
0
        /// <summary>
        /// Add user-defined command help data to command help.
        /// </summary>
        /// <param name="userDefinedData">User defined data object.</param>
        internal void AddUserDefinedData(UserDefinedHelpData userDefinedData)
        {
            if (userDefinedData == null)
            {
                return;
            }

            string propertyValue;

            if (userDefinedData.Properties.TryGetValue("component", out propertyValue))
            {
                _component = propertyValue;
            }

            if (userDefinedData.Properties.TryGetValue("role", out propertyValue))
            {
                _role = propertyValue;
            }

            if (userDefinedData.Properties.TryGetValue("functionality", out propertyValue))
            {
                _functionality = propertyValue;
            }

            // component,role,functionality is part of common help..
            // Update these properties as we have new data now..
            this.UpdateUserDefinedDataProperties();
        }
예제 #2
0
 internal static UserDefinedHelpData Load(System.Xml.XmlNode dataNode)
 {
     if (dataNode == null)
     {
         return null;
     }
     UserDefinedHelpData data = new UserDefinedHelpData();
     for (int i = 0; i < dataNode.ChildNodes.Count; i++)
     {
         System.Xml.XmlNode node = dataNode.ChildNodes[i];
         if (node.NodeType == XmlNodeType.Element)
         {
             data.Properties[node.Name] = node.InnerText.Trim();
         }
     }
     if (!data.Properties.ContainsKey("name"))
     {
         return null;
     }
     data._name = data.Properties["name"];
     if (string.IsNullOrEmpty(data.Name))
     {
         return null;
     }
     return data;
 }
예제 #3
0
        internal static UserDefinedHelpData Load(System.Xml.XmlNode dataNode)
        {
            if (dataNode == null)
            {
                return(null);
            }
            UserDefinedHelpData data = new UserDefinedHelpData();

            for (int i = 0; i < dataNode.ChildNodes.Count; i++)
            {
                System.Xml.XmlNode node = dataNode.ChildNodes[i];
                if (node.NodeType == XmlNodeType.Element)
                {
                    data.Properties[node.Name] = node.InnerText.Trim();
                }
            }
            if (!data.Properties.ContainsKey("name"))
            {
                return(null);
            }
            data._name = data.Properties["name"];
            if (string.IsNullOrEmpty(data.Name))
            {
                return(null);
            }
            return(data);
        }
예제 #4
0
        private void LoadHelpFile(string helpFile, string helpFileIdentifier)
        {
            XmlDocument document = InternalDeserializer.LoadUnsafeXmlDocument(new FileInfo(helpFile), false, null);

            this._helpFiles[helpFile] = 0;
            System.Xml.XmlNode helpItemsNode = null;
            if (document.HasChildNodes)
            {
                for (int i = 0; i < document.ChildNodes.Count; i++)
                {
                    System.Xml.XmlNode node2 = document.ChildNodes[i];
                    if ((node2.NodeType == XmlNodeType.Element) && (string.Compare(node2.LocalName, "helpItems", StringComparison.OrdinalIgnoreCase) == 0))
                    {
                        helpItemsNode = node2;
                        break;
                    }
                }
            }
            if (helpItemsNode == null)
            {
                tracer.WriteLine("Unable to find 'helpItems' element in file {0}", new object[] { helpFile });
            }
            else
            {
                bool flag = IsMamlHelp(helpFile, helpItemsNode);
                using (base.HelpSystem.Trace(helpFile))
                {
                    if (helpItemsNode.HasChildNodes)
                    {
                        for (int j = 0; j < helpItemsNode.ChildNodes.Count; j++)
                        {
                            System.Xml.XmlNode xmlNode = helpItemsNode.ChildNodes[j];
                            if ((xmlNode.NodeType == XmlNodeType.Element) && (string.Compare(xmlNode.LocalName, "command", StringComparison.OrdinalIgnoreCase) == 0))
                            {
                                MamlCommandHelpInfo helpInfo = null;
                                if (flag)
                                {
                                    helpInfo = MamlCommandHelpInfo.Load(xmlNode, System.Management.Automation.HelpCategory.Cmdlet);
                                }
                                if (helpInfo != null)
                                {
                                    base.HelpSystem.TraceErrors(helpInfo.Errors);
                                    this.AddToCommandCache(helpFileIdentifier, helpInfo.Name, helpInfo);
                                }
                            }
                            if ((xmlNode.NodeType == XmlNodeType.Element) && (string.Compare(xmlNode.Name, "UserDefinedData", StringComparison.OrdinalIgnoreCase) == 0))
                            {
                                UserDefinedHelpData userDefinedHelpData = UserDefinedHelpData.Load(xmlNode);
                                this.ProcessUserDefineddHelpData(helpFileIdentifier, userDefinedHelpData);
                            }
                        }
                    }
                }
            }
        }
예제 #5
0
 private void ProcessUserDefineddHelpData(string mshSnapInId, UserDefinedHelpData userDefinedHelpData)
 {
     if ((userDefinedHelpData != null) && !string.IsNullOrEmpty(userDefinedHelpData.Name))
     {
         HelpInfo info = this.GetFromCommandCache(mshSnapInId, userDefinedHelpData.Name, System.Management.Automation.HelpCategory.Cmdlet);
         if (info != null)
         {
             MamlCommandHelpInfo info2 = info as MamlCommandHelpInfo;
             if (info2 != null)
             {
                 info2.AddUserDefinedData(userDefinedHelpData);
             }
         }
     }
 }
예제 #6
0
 internal void AddUserDefinedData(UserDefinedHelpData userDefinedData)
 {
     if (userDefinedData != null)
     {
         if (userDefinedData.Properties.ContainsKey("component"))
         {
             this._component = userDefinedData.Properties["component"];
         }
         if (userDefinedData.Properties.ContainsKey("role"))
         {
             this._role = userDefinedData.Properties["role"];
         }
         if (userDefinedData.Properties.ContainsKey("functionality"))
         {
             this._functionality = userDefinedData.Properties["functionality"];
         }
         base.UpdateUserDefinedDataProperties();
     }
 }
예제 #7
0
 internal void AddUserDefinedData(UserDefinedHelpData userDefinedData)
 {
     if (userDefinedData != null)
     {
         if (userDefinedData.Properties.ContainsKey("component"))
         {
             this._component = userDefinedData.Properties["component"];
         }
         if (userDefinedData.Properties.ContainsKey("role"))
         {
             this._role = userDefinedData.Properties["role"];
         }
         if (userDefinedData.Properties.ContainsKey("functionality"))
         {
             this._functionality = userDefinedData.Properties["functionality"];
         }
         base.UpdateUserDefinedDataProperties();
     }
 }
예제 #8
0
        internal static UserDefinedHelpData Load(XmlNode dataNode)
        {
            if (dataNode == null)
            {
                return((UserDefinedHelpData)null);
            }
            UserDefinedHelpData userDefinedHelpData = new UserDefinedHelpData();

            for (int i = 0; i < dataNode.ChildNodes.Count; ++i)
            {
                XmlNode childNode = dataNode.ChildNodes[i];
                if (childNode.NodeType == XmlNodeType.Element)
                {
                    userDefinedHelpData.Properties[childNode.Name] = childNode.InnerText.Trim();
                }
            }
            if (!userDefinedHelpData.Properties.ContainsKey("name"))
            {
                return((UserDefinedHelpData)null);
            }
            userDefinedHelpData._name = userDefinedHelpData.Properties["name"];
            return(string.IsNullOrEmpty(userDefinedHelpData.Name) ? (UserDefinedHelpData)null : userDefinedHelpData);
        }
예제 #9
0
        /// <summary>
        /// Process user defined help data by finding the corresponding helpInfo and inserting 
        /// necessary helpdata info to command help.
        /// </summary>
        /// <param name="mshSnapInId">PSSnapIn Name for the current help file.</param>
        /// <param name="userDefinedHelpData"></param>
        private void ProcessUserDefineddHelpData(string mshSnapInId, UserDefinedHelpData userDefinedHelpData)
        {
            if (userDefinedHelpData == null)
                return;

            if (String.IsNullOrEmpty(userDefinedHelpData.Name))
                return;

            HelpInfo helpInfo = GetFromCommandCache(mshSnapInId, userDefinedHelpData.Name, HelpCategory.Cmdlet);

            if (helpInfo == null)
                return;

            MamlCommandHelpInfo commandHelpInfo = helpInfo as MamlCommandHelpInfo;

            if (commandHelpInfo == null)
                return;

            commandHelpInfo.AddUserDefinedData(userDefinedHelpData);

            return;
        }
예제 #10
0
        internal static UserDefinedHelpData Load(XmlNode dataNode)
        {
            if (dataNode == null)
                return null;

            UserDefinedHelpData userDefinedHelpData = new UserDefinedHelpData();

            for (int i = 0; i < dataNode.ChildNodes.Count; i++)
            {
                XmlNode node = dataNode.ChildNodes[i];
                if (node.NodeType == XmlNodeType.Element)
                {
                    userDefinedHelpData.Properties[node.Name] = node.InnerText.Trim();
                }
            }

            string name;
            if (!userDefinedHelpData.Properties.TryGetValue("name", out name))
            {
                return null;
            }

            userDefinedHelpData._name = name;

            if (String.IsNullOrEmpty(userDefinedHelpData.Name))
                return null;

            return userDefinedHelpData;
        }
예제 #11
0
 private void ProcessUserDefineddHelpData(string mshSnapInId, UserDefinedHelpData userDefinedHelpData)
 {
     if ((userDefinedHelpData != null) && !string.IsNullOrEmpty(userDefinedHelpData.Name))
     {
         HelpInfo info = this.GetFromCommandCache(mshSnapInId, userDefinedHelpData.Name, System.Management.Automation.HelpCategory.Cmdlet);
         if (info != null)
         {
             MamlCommandHelpInfo info2 = info as MamlCommandHelpInfo;
             if (info2 != null)
             {
                 info2.AddUserDefinedData(userDefinedHelpData);
             }
         }
     }
 }
예제 #12
0
        /// <summary>
        /// Add user-defined command help data to command help.
        /// </summary>
        /// <param name="userDefinedData">User defined data object</param>
        internal void AddUserDefinedData(UserDefinedHelpData userDefinedData)
        {
            if (userDefinedData == null)
                return;

            string propertyValue;
            if (userDefinedData.Properties.TryGetValue("component", out propertyValue))
            {
                _component = propertyValue;
            }

            if (userDefinedData.Properties.TryGetValue("role", out propertyValue))
            {
                _role = propertyValue;
            }

            if (userDefinedData.Properties.TryGetValue("functionality", out propertyValue))
            {
                _functionality = propertyValue;
            }

            // component,role,functionality is part of common help..
            // Update these properties as we have new data now..
            this.UpdateUserDefinedDataProperties();
        }