Example #1
0
        /// <summary>
        /// Helper method used to Write the help object onto the output
        /// stream or show online help (URI extracted from the HelpInfo)
        /// object.
        /// </summary>
        private void WriteObjectsOrShowOnlineHelp(HelpInfo helpInfo, bool showFullHelp)
        {
            if (helpInfo != null)
            {
                // online help can be showed only if showFullHelp is true..
                // showFullHelp will be false when the help tries to display multiple help topics..
                // -Online should not work when multiple help topics are displayed.
                if (showFullHelp && _showOnlineHelp)
                {
                    bool onlineUriFound = false;
                    // show online help
                    s_tracer.WriteLine("Preparing to show help online.");
                    Uri onlineUri = helpInfo.GetUriForOnlineHelp();
                    if (onlineUri != null)
                    {
                        onlineUriFound = true;
                        LaunchOnlineHelp(onlineUri);
                        return;
                    }

                    if (!onlineUriFound)
                    {
                        throw PSTraceSource.NewInvalidOperationException(HelpErrors.NoURIFound);
                    }
                }
                else
                {
                    // show inline help
                    if (showFullHelp)
                    {
                        if (!string.IsNullOrEmpty(Parameter))
                        {
                            GetAndWriteParameterInfo(helpInfo);
                        }
                        else
                        {
                            PSObject objectToReturn = TransformView(helpInfo.FullHelp);
                            objectToReturn.IsHelpObject = true;
                            WriteObject(objectToReturn);
                        }
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(Parameter))
                        {
                            PSObject[] pInfos = helpInfo.GetParameter(Parameter);
                            if ((pInfos == null) || (pInfos.Length == 0))
                            {
                                return;
                            }
                        }

                        WriteObject(helpInfo.ShortHelp);
                    }
                }
            }
        }
Example #2
0
        /// <summary>
        /// Gets the parameter info for patterns identified by Parameter property.
        /// </summary>
        /// <param name="helpInfo">HelpInfo object to look for the parameter.</param>
        /// <returns>Array of parameter infos.</returns>
        private PSObject[] GetParameterInfo(HelpInfo helpInfo)
        {
            List <PSObject> parameterInfosList = new List <PSObject>(Parameter.Length);

            foreach (var parameter in Parameter)
            {
                foreach (var parameterInfo in helpInfo.GetParameter(parameter))
                {
                    parameterInfosList.Add(parameterInfo);
                }
            }

            return(parameterInfosList.ToArray());
        }
Example #3
0
 private void WriteObjectsOrShowOnlineHelp(HelpInfo helpInfo, bool showFullHelp)
 {
     if (helpInfo != null)
     {
         if (showFullHelp && this.showOnlineHelp)
         {
             bool flag = false;
             tracer.WriteLine("Preparing to show help online.", new object[0]);
             Uri uriForOnlineHelp = helpInfo.GetUriForOnlineHelp();
             if (null != uriForOnlineHelp)
             {
                 flag = true;
                 this.LaunchOnlineHelp(uriForOnlineHelp);
             }
             else if (!flag)
             {
                 throw PSTraceSource.NewInvalidOperationException("HelpErrors", "NoURIFound", new object[0]);
             }
         }
         else if (showFullHelp && (this.ShowWindow != 0))
         {
             this.graphicalHostReflectionWrapper.CallStaticMethod("ShowHelpWindow", new object[] { helpInfo.FullHelp, this });
         }
         else if (showFullHelp)
         {
             if (!string.IsNullOrEmpty(this._parameter))
             {
                 this.GetAndWriteParameterInfo(helpInfo);
             }
             else
             {
                 PSObject sendToPipeline = this.TransformView(helpInfo.FullHelp);
                 sendToPipeline.IsHelpObject = true;
                 base.WriteObject(sendToPipeline);
             }
         }
         else
         {
             if (!string.IsNullOrEmpty(this._parameter))
             {
                 PSObject[] parameter = helpInfo.GetParameter(this._parameter);
                 if ((parameter == null) || (parameter.Length == 0))
                 {
                     return;
                 }
             }
             base.WriteObject(helpInfo.ShortHelp);
         }
     }
 }
Example #4
0
 private void GetAndWriteParameterInfo(HelpInfo helpInfo)
 {
     tracer.WriteLine("Searching parameters for {0}", new object[] { helpInfo.Name });
     PSObject[] parameter = helpInfo.GetParameter(this._parameter);
     if ((parameter == null) || (parameter.Length == 0))
     {
         Exception exception = PSTraceSource.NewArgumentException("Parameter", "HelpErrors", "NoParmsFound", new object[] { this._parameter });
         base.WriteError(new ErrorRecord(exception, "NoParmsFound", ErrorCategory.InvalidArgument, helpInfo));
     }
     else
     {
         foreach (PSObject obj2 in parameter)
         {
             base.WriteObject(obj2);
         }
     }
 }
Example #5
0
 private void WriteObjectsOrShowOnlineHelp(HelpInfo helpInfo, bool showFullHelp)
 {
     if (helpInfo == null)
     {
         return;
     }
     if (showFullHelp && this.showOnlineHelp)
     {
         bool flag = false;
         GetHelpCommand.tracer.WriteLine("Preparing to show help online.", new object[0]);
         Uri uriForOnlineHelp = helpInfo.GetUriForOnlineHelp();
         if ((Uri)null != uriForOnlineHelp)
         {
             this.LaunchOnlineHelp(uriForOnlineHelp);
         }
         else if (!flag)
         {
             throw GetHelpCommand.tracer.NewInvalidOperationException("HelpErrors", "NoURIFound");
         }
     }
     else if (showFullHelp)
     {
         if (!string.IsNullOrEmpty(this._parameter))
         {
             this.GetAndWriteParameterInfo(helpInfo);
         }
         else
         {
             this.WriteObject((object)this.TransformView(helpInfo.FullHelp));
         }
     }
     else
     {
         if (!string.IsNullOrEmpty(this._parameter))
         {
             PSObject[] parameter = helpInfo.GetParameter(this._parameter);
             if (parameter == null || parameter.Length == 0)
             {
                 return;
             }
         }
         this.WriteObject((object)helpInfo.ShortHelp);
     }
 }
Example #6
0
        /// <summary>
        /// Gets the parameter info for patterns identified Parameter property.
        /// Writes the parameter info(s) to the output stream. An error is thrown
        /// if a parameter with a given pattern is not found.
        /// </summary>
        /// <param name="helpInfo">HelpInfo Object to look for the parameter.</param>
        private void GetAndWriteParameterInfo(HelpInfo helpInfo)
        {
            s_tracer.WriteLine("Searching parameters for {0}", helpInfo.Name);
            PSObject[] pInfos = helpInfo.GetParameter(Parameter);

            if ((pInfos == null) || (pInfos.Length == 0))
            {
                Exception innerException = PSTraceSource.NewArgumentException("Parameter",
                                                                              HelpErrors.NoParmsFound, Parameter);
                WriteError(new ErrorRecord(innerException, "NoParmsFound", ErrorCategory.InvalidArgument, helpInfo));
            }
            else
            {
                foreach (PSObject pInfo in pInfos)
                {
                    WriteObject(pInfo);
                }
            }
        }
Example #7
0
 private void GetAndWriteParameterInfo(HelpInfo helpInfo)
 {
     using (GetHelpCommand.tracer.TraceMethod(nameof(GetAndWriteParameterInfo), new object[0]))
     {
         GetHelpCommand.tracer.WriteLine("Searching parameters for {0}", (object)helpInfo.Name);
         PSObject[] parameter = helpInfo.GetParameter(this._parameter);
         if (parameter == null || parameter.Length == 0)
         {
             this.WriteError(new ErrorRecord((Exception)GetHelpCommand.tracer.NewArgumentException("Parameter", "HelpErrors", "NoParmsFound", (object)this._parameter), "NoParmsFound", ErrorCategory.InvalidArgument, (object)helpInfo));
         }
         else
         {
             foreach (object sendToPipeline in parameter)
             {
                 this.WriteObject(sendToPipeline);
             }
         }
     }
 }