/// <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); } } } }
/// <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()); }
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); } } }
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); } } }
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); } }
/// <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); } } }
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); } } } }