/// <summary> /// Called when parameters info gets lost focus /// </summary> public void saveParameterDescription1() { TreeViewItem Node = (TreeViewItem)MainWindow.NavControl.CmdletTreeView.SelectedItem; if (Node != null) { parameterDecription param = (parameterDecription)Node.DataContext; param.NewDescription = this.ParametersControl1.ParameterDescTextBox.Text; param.DefaultValue = this.ParametersControl1.DefaultValueTextBox.Text; if ((Boolean)this.ParametersControl1.GlobbingCheckBox.IsChecked) { param.Globbing = true; } else { param.Globbing = false; } } }
/// <summary> /// This is the static method which Asim helped me with. /// I get all the Cmdlet Mamal info from here. /// I need to pass the cmdletDescription record before adding it to the CmdletHelps collection. /// /// </summary> public static cmdletDescription GetExistingHelpInfo(cmdletDescription CmdletHelp, String CmdletName, String path) { //String path1 = @"C:\Windows\System32\WindowsPowerShell\v1.0\en-US\Microsoft.PowerShell.Commands.Management.dll-Help.xml"; XmlDocument doc = new XmlDocument(); doc.Load(path); XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable); ns.AddNamespace("", "http://msh"); ns.AddNamespace("command", "http://schemas.microsoft.com/maml/dev/command/2004/10"); ns.AddNamespace("maml", "http://schemas.microsoft.com/maml/2004/10"); ns.AddNamespace("dev", "http://schemas.microsoft.com/maml/dev/2004/10"); XmlNodeList commandNodes = doc.SelectNodes("//command:command", ns); foreach (XmlNode commandNode in commandNodes) { XmlNode nameNode = commandNode.SelectSingleNode("command:details/command:name", ns); if (nameNode.InnerText.Trim().ToLower() == CmdletName.ToLower()) { // MessageBox.Show(commandNode.OuterXml); XmlNode tempNode = null; tempNode = commandNode.SelectSingleNode("command:details/maml:description", ns); if (tempNode != null) { CmdletHelp.OldShortDescription = CmdletHelp.ShortDescription = tempNode.InnerText.Trim(); } tempNode = commandNode.SelectSingleNode("maml:description", ns); if (tempNode != null) { CmdletHelp.OldLongDescription = CmdletHelp.LongDescription = tempNode.InnerText.Trim(); } tempNode = commandNode.SelectSingleNode("command:inputTypes/command:inputType/dev:type/maml:name", ns); if (tempNode != null) { CmdletHelp.OldInputType = CmdletHelp.InputType = tempNode.InnerText.Trim(); } tempNode = commandNode.SelectSingleNode("command:inputTypes/command:inputType/dev:type/maml:description", ns); if (tempNode != null) { CmdletHelp.OldInputDesc = CmdletHelp.InputDesc = tempNode.InnerText.Trim(); } tempNode = commandNode.SelectSingleNode("command:returnValues/command:returnValue/dev:type/maml:name", ns); if (tempNode != null) { CmdletHelp.OldOutputType = CmdletHelp.OutputType = tempNode.InnerText.Trim(); } tempNode = commandNode.SelectSingleNode("command:returnValues/command:returnValue/dev:type/maml:description", ns); if (tempNode != null) { CmdletHelp.OldOutputDesc = CmdletHelp.OutputDesc = tempNode.InnerText.Trim(); } tempNode = commandNode.SelectSingleNode("maml:alertSet/maml:alert", ns); if (tempNode != null) { CmdletHelp.OldNote = CmdletHelp.Note = tempNode.InnerText.Trim(); } XmlNodeList exampleNodes = commandNode.SelectNodes("command:examples/command:example", ns); int exampleCount = 0; Collection<example> CmdletExamples = new Collection<example>(); foreach (XmlNode exampleNode in exampleNodes) { example CmdletExample = new example(); tempNode = exampleNode.SelectSingleNode("maml:title", ns); if (tempNode != null) { CmdletExample.OldExampleName = CmdletExample.ExampleName = tempNode.InnerText.Trim().Replace("-", ""); if (CmdletExample.ExampleName.Length == 0 || CmdletExample.ExampleName.Replace(" ", "") == "") { CmdletExample.ExampleName = CmdletExample.OldExampleName = "Unkown"; } } CmdletExample.ExampleID = exampleCount; tempNode = exampleNode.SelectSingleNode("dev:code", ns); if (tempNode != null) { CmdletExample.OldExampleCmd = CmdletExample.ExampleCmd = tempNode.InnerText.Trim(); } tempNode = exampleNode.SelectSingleNode("dev:remarks", ns); if (tempNode != null) { int NodeCount = 0; foreach (XmlNode DescriptionNode in tempNode) { if (NodeCount == 0) { CmdletExample.OldExampleDescription = CmdletExample.ExampleDescription = DescriptionNode.InnerText.Trim(); } else { CmdletExample.OldExampleOutput += DescriptionNode.InnerText.Trim(); CmdletExample.ExampleOutput = CmdletExample.OldExampleOutput; } NodeCount++; } } tempNode = exampleNode.SelectSingleNode("command:commandLines", ns); if (tempNode != null) { CmdletExample.OldExampleOutput += tempNode.InnerText.Trim(); CmdletExample.ExampleOutput = CmdletExample.OldExampleOutput; } exampleCount++; CmdletExamples.Add(CmdletExample); } CmdletHelp.Examples = CmdletExamples; Collection<relatedlink> RelatedLinks = new Collection<relatedlink>(); XmlNodeList NodeLinks = commandNode.SelectNodes("maml:relatedLinks/maml:navigationLink", ns); int LinkCount = 0; foreach (XmlNode linkNode in NodeLinks) { relatedlink RelatedLink = new relatedlink(); tempNode = linkNode.SelectSingleNode("maml:linkText", ns); if (tempNode != null) { RelatedLink.OldLinkText = RelatedLink.LinkText = tempNode.InnerText.Trim(); if (RelatedLink.LinkText.Length == 0) { RelatedLink.LinkText = RelatedLink.LinkText = "Unkown"; } } RelatedLink.LinkID = LinkCount; LinkCount++; RelatedLinks.Add(RelatedLink); } CmdletHelp.RelatedLinks = RelatedLinks; //iterate through parameters XmlNodeList parameterNodes = commandNode.SelectNodes("command:parameters/command:parameter", ns); if (CmdletHelp.ParameterDecription != null) { foreach (parameterDecription CmdletParameter in CmdletHelp.ParameterDecription) { //maml:description foreach (XmlNode parameterNode in parameterNodes) { tempNode = parameterNode.SelectSingleNode("maml:name", ns); if (tempNode != null) { if (CmdletParameter.Name.ToLower() == tempNode.InnerText.Trim().ToLower()) { tempNode = parameterNode.SelectSingleNode("maml:description", ns); if (tempNode != null) { CmdletParameter.OldDescription = CmdletParameter.NewDescription = tempNode.InnerText.Trim(); } tempNode = parameterNode.SelectSingleNode("dev:defaultValue", ns); if (tempNode != null) { CmdletParameter.DefaultValue = CmdletParameter.OldDefaultValue = tempNode.InnerText.Trim(); } tempNode = parameterNode.SelectSingleNode("@globbing", ns); if (tempNode.Value.ToLower().Trim() == "true") { CmdletParameter.Globbing = CmdletParameter.OldGlobbing = true; } else { CmdletParameter.Globbing = CmdletParameter.OldGlobbing = false; } } } } } } //I do not have code parameters. Get only help ones and mark them in red. foreach (XmlNode parameterNode in parameterNodes) { Boolean ParameterFound = false; tempNode = parameterNode.SelectSingleNode("maml:name", ns); String ParameterName = tempNode.InnerText.Trim(); if (CmdletHelp.ParameterDecription != null) { foreach (parameterDecription CmdletParameter in CmdletHelp.ParameterDecription) { if (CmdletParameter.Name.ToLower() == ParameterName.ToLower()) { ParameterFound = true; break; } } } if (ParameterFound == false) { //Get help parameter. parameterDecription CmdletParameter = new parameterDecription(); CmdletParameter.HelpOnlyParameter = true; MainWindow.ObsoleteInfo = true; tempNode = parameterNode.SelectSingleNode("maml:name", ns); if (tempNode != null) { // if (CmdletParameter.Name.ToLower() == tempNode.InnerText.Trim().ToLower()) // { tempNode = parameterNode.SelectSingleNode("maml:description", ns); if (tempNode != null) { CmdletParameter.OldDescription = CmdletParameter.NewDescription = tempNode.InnerText.Trim(); } tempNode = parameterNode.SelectSingleNode("dev:defaultValue", ns); if (tempNode != null) { CmdletParameter.DefaultValue = CmdletParameter.OldDefaultValue = tempNode.InnerText.Trim(); } tempNode = parameterNode.SelectSingleNode("@globbing", ns); if (tempNode.Value.ToLower().Trim() == "true") { CmdletParameter.Globbing = CmdletParameter.OldGlobbing = true; } else { CmdletParameter.Globbing = CmdletParameter.OldGlobbing = false; } tempNode = parameterNode.SelectSingleNode("@pipelineInput", ns); if (tempNode != null) { if (tempNode.Value.ToLower().Trim() == "true (ByPropertyName)") { CmdletParameter.VFPBPN = CmdletParameter.VFPBPN = true; } else if (tempNode.Value.ToLower().Trim() == "true (ByValue, ByPropertyName)") { CmdletParameter.VFPBPN = CmdletParameter.VFPBPN = true; CmdletParameter.VFP = CmdletParameter.VFP = true; } else if (tempNode.Value.ToLower().Trim() == "true (ByValue)") { CmdletParameter.VFP = CmdletParameter.VFP = true; } else { CmdletParameter.VFPBPN = CmdletParameter.VFPBPN = false; CmdletParameter.VFP = CmdletParameter.VFP = false; } } tempNode = parameterNode.SelectSingleNode("@position", ns); if (tempNode != null) { CmdletParameter.Position = tempNode.Value.ToLower().Trim(); } tempNode = parameterNode.SelectSingleNode("@required", ns); if (tempNode != null) { if (tempNode.Value.ToLower().Trim() == "true") { CmdletParameter.isMandatory = true; } } tempNode = parameterNode.SelectSingleNode("dev:type/maml:name", ns); if (tempNode != null) { if (tempNode.InnerText != null) { CmdletParameter.ParameterType = tempNode.InnerText.Trim().ToLower(); } } CmdletParameter.Name = ParameterName; CmdletParameter.CmdletName = CmdletName; if (CmdletHelp.ParameterDecription == null) { CmdletHelp.ParameterDecription = new Collection<parameterDecription>(); } CmdletHelp.ParameterDecription.Add(CmdletParameter); } } } // break; } } return CmdletHelp; }
/// <summary> /// This is the routine that pastes the Parameter info to the slected cell. /// </summary> /// <param name="param"></param> /// <param name="copiedparam"></param> public void copyParameterInfo(parameterDecription param, parameterDecription copiedparam) { param.DefaultValue = copiedparam.DefaultValue; param.NewDescription = copiedparam.NewDescription; param.Globbing = copiedparam.Globbing; }
/// <summary> /// Write the parameter in the text viewer. /// </summary> /// <param name="param"></param> /// <returns></returns> public static String WriteParameter(parameterDecription param) { var textStream = " -" + param.Name + " <" + param.ParameterType + ">\r\n"; textStream += " " + param.NewDescription + "\r\n\r\n"; textStream += " Required? "; if (param.isMandatory) { textStream += "true\r\n"; } else { textStream += "false\r\n"; } textStream += " Position? " + param.Position + "\r\n"; textStream += " Default value " + param.DefaultValue + "\r\n"; String pipelineInput; if (param.VFP || param.VFPBPN) { pipelineInput = "true ("; if (param.VFP) { pipelineInput += "ByValue"; } if (param.VFPBPN) { if (pipelineInput.Length > 6) { pipelineInput += ", ByPropertyName)"; } else { pipelineInput += "ByPropertyName)"; } } else { pipelineInput += ")"; } } else { pipelineInput = "false"; } textStream += " Accept pipeline input? " + pipelineInput + "\r\n"; if (param.Globbing) { textStream += " Accept wildcard characters? true\r\n\r\n"; } else { textStream += " Accept wildcard characters? false\r\n\r\n"; } return textStream; }
public XmlWriter createSyntaxItem(XmlWriter writer, parameterDecription param, cmdletDescription Cmdlet) { try { // foreach (PSObject result in results) // { // String LocalParamDescription = ""; Boolean Globbing = param.Globbing; String cmdletName = Cmdlet.CmdletName; // TODO add real CmdletName CmdletsList.SelectedValue.ToString(); //foreach (HelpEditor.parameterDecription param in parametersDescription) //{ // if ((param.Name.ToLower() == Parameterecord.Name.ToLower()) && (cmdletName == param.CmdletName)) // { // LocalParamDescription = param.NewDescription; // Globbing = param.Globbing; // break; // } //} // Parameter Metadata for the Syntax Item section. writer.WriteRaw(" <command:parameter "); writer.WriteRaw("required = \"" + param.isMandatory.ToString().ToLower() + "\""); //Do variable length verification String parametertype = param.ParameterType; int LengthName = parametertype.Length; String VariableLength = "false"; if (LengthName > 2) { if (parametertype[LengthName - 1] == ']' && parametertype[LengthName - 2] == '[') { VariableLength = "true"; } } writer.WriteRaw(" variableLength = \"" + VariableLength + "\""); // TODO add code for globbing here. String strGlobbing = "false"; if (Globbing) { strGlobbing = "true"; } writer.WriteRaw(" globbing = \"" + strGlobbing + "\""); String pipelineInput; if (param.VFP || param.VFPBPN) { pipelineInput = "true ("; if (param.VFP) { pipelineInput += "ByValue"; } if (param.VFPBPN) { if (pipelineInput.Length > 6) { pipelineInput += ", ByPropertyName)"; } else { pipelineInput += "ByPropertyName)"; } } else { pipelineInput += ")"; } } else { pipelineInput = "false"; } writer.WriteRaw(" pipelineInput = \"" + pipelineInput + "\""); //Positional? // int position; // if (param.Position < 0) // { // writer.WriteRaw(" position = \"named\">"); // } // else // { // position = (Parameterecord.Position + 1); writer.WriteRaw(" position = \"" + param.Position + "\" >\r\n"); // } //Maml parameter name. // writer.WriteRaw(" <!--Parameter Name-->\r\n"); writer.WriteRaw(" <maml:name>"); writer.WriteRaw(HttpUtility.HtmlEncode(param.Name)); writer.WriteRaw("</maml:name>\r\n"); //Parameter description // writer.WriteRaw("maml", "para", "http://schemas.microsoft.com/maml/2004/10"); writer.WriteRaw(" <maml:description>\r\n"); // writer.WriteRaw(" <!--Parameter Description->\r\n"); //Get the description from the struc. writer.WriteRaw(" <maml:para>"); writer.WriteRaw(HttpUtility.HtmlEncode(param.NewDescription)); writer.WriteRaw("</maml:para>\r\n"); writer.WriteRaw(" </maml:description>\r\n"); string paramValueRequired = "true"; if (param.ParameterType.ToLower() != "switchparameter") { //Additional parameter Values if (param.ParameterType.ToLower() == "boolean") { paramValueRequired = "false"; } //Additional parameter Values writer.WriteRaw(" <command:parameterValue "); writer.WriteRaw("required=\"" + paramValueRequired + "\""); writer.WriteRaw(" variableLength = \"" + VariableLength + "\" >"); writer.WriteRaw(HttpUtility.HtmlEncode(param.ParameterType)); writer.WriteRaw("</command:parameterValue>\r\n"); } //End <command:prameter> writer.WriteRaw(" </command:parameter>\r\n"); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message, "Error writing the XML File.", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); } //} return writer; }
public XmlWriter createParameters(XmlWriter writer, parameterDecription parametersDescription) { try { if (!parametersDescription.HelpOnlyParameter) { string parametertype = parametersDescription.ParameterType.ToString(); int LengthName = parametertype.Length; String VariableLength = "false"; String strGlobbing = "false"; //String cmdletName = "CmdletName"; // TODO add real CmdletName CmdletsList.SelectedValue.ToString(); // foreach (HelpEditor.parameterDecription param in parametersDescription) // { // if ((parametersDescription.Name.ToLower() == Parameterecord.Name.ToLower()) && (cmdletName == param.CmdletName)) // { //LocalParamDescription = param.NewDescription; if (parametersDescription.Globbing) strGlobbing = "true"; // break; // } // } if (LengthName > 2) { if (parametertype[LengthName - 1] == ']' && parametertype[LengthName - 2] == '[') { VariableLength = "true"; } } String pipelineInput; if (parametersDescription.VFP || parametersDescription.VFPBPN) { pipelineInput = "true ("; if (parametersDescription.VFP) { pipelineInput += "ByValue"; } if (parametersDescription.VFPBPN) { if (pipelineInput.Length > 6) { pipelineInput += ", ByPropertyName)"; } else { pipelineInput += "ByPropertyName)"; } } else { pipelineInput += ")"; } } else { pipelineInput = "false"; } // Parameter Metadata for the Syntax Item section. writer.WriteRaw(" <command:parameter "); writer.WriteRaw("required=\"" + parametersDescription.isMandatory.ToString().ToLower() + "\""); writer.WriteRaw(" variableLength=\"" + VariableLength + "\""); writer.WriteRaw(" globbing=\"" + strGlobbing + "\""); writer.WriteRaw(" pipelineInput=\"" + pipelineInput + "\""); //int position; //if (Parameterecord.Position < 0) //{ // writer.WriteRaw(" position=\"named\">\r\n"); //} //else //{ // position = (Parameterecord.Position + 1); writer.WriteRaw(" position=\"" + parametersDescription.Position + "\">\r\n"); // } //Maml parameter name. writer.WriteRaw(" <maml:name>"); //writer.WriteComment("Parameter Name"); writer.WriteRaw(HttpUtility.HtmlEncode(parametersDescription.Name)); writer.WriteRaw("</maml:name>\r\n"); //Parameter description writer.WriteRaw(" <maml:description>\r\n"); //writer.WriteComment("Parameter Description"); writer.WriteRaw(" <maml:para>"); String LocalParamDescription = ""; //foreach (HelpEditor.parameterDecription param in parametersDescription) //{ // if (param.Name.ToLower() == Parameterecord.Name.ToLower()) // TODO add real CmdletName && (String) this.CmdletsList.SelectedValue == param.CmdletName) // { LocalParamDescription = HttpUtility.HtmlEncode(parametersDescription.NewDescription); // } //} writer.WriteRaw(LocalParamDescription); writer.WriteRaw("</maml:para>\r\n"); writer.WriteRaw(" </maml:description>\r\n"); string paramValueRequired = "true"; if (parametersDescription.ParameterType.ToLower() != "switchparameter") { if (parametersDescription.ParameterType.ToLower() == "boolean") { paramValueRequired = "false"; } //Additional parameter Values writer.WriteRaw(" <command:parameterValue "); writer.WriteRaw("required=\"" + paramValueRequired + "\""); writer.WriteRaw(" variableLength=\"" + VariableLength + "\">"); writer.WriteRaw(HttpUtility.HtmlEncode(parametersDescription.ParameterType)); writer.WriteRaw("</command:parameterValue>\r\n"); } //Dev Type writer.WriteRaw(" <dev:type>\r\n"); writer.WriteRaw(" <maml:name>"); //writer.WriteComment("Parameter Type"); writer.WriteRaw(HttpUtility.HtmlEncode(parametersDescription.ParameterType)); writer.WriteRaw("</maml:name>\r\n");//maml:name writer.WriteRaw(" <maml:uri/>\r\n"); //writer.WriteComment("uri"); //writer.WriteRaw();//maml:uri writer.WriteRaw(" </dev:type>\r\n");//dev:type //Dev Default Value. //TODO writer.WriteRaw(" <dev:defaultValue>"); //writer.WriteComment("Default Value"); writer.WriteRaw(HttpUtility.HtmlEncode(parametersDescription.DefaultValue)); writer.WriteRaw("</dev:defaultValue>\r\n"); //<command:parameter required="true" variableLength="false" globbing="true" pipelineInput="true (ByPropertyName)" position="1"> // <maml:name><!-- Prameter Name --></maml:name> // <maml:description> // <maml:para><!-- Parameter Description --></maml:para> // </maml:description> // <command:parameterValue required="true" variableLength="false">string[]</command:parameterValue> // <dev:type> // <maml:name><!-- Prameter Type --></maml:name> // <maml:uri/> // </dev:type> // <dev:defaultValue><!-- Default Value --></dev:defaultValue> //</command:parameter> //End <command:parameter> writer.WriteRaw(" </command:parameter>\r\n"); } return writer; } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message, "Error writing the XML File.", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); return writer; } }
public XmlWriter createSyntaxItem(XmlWriter writer, parameterDecription param, cmdletDescription Cmdlet) { try { // foreach (PSObject result in results) // { // String LocalParamDescription = ""; Boolean Globbing = param.Globbing; String cmdletName = Cmdlet.CmdletName; // TODO add real CmdletName CmdletsList.SelectedValue.ToString(); //foreach (HelpEditor.parameterDecription param in parametersDescription) //{ // if ((param.Name.ToLower() == Parameterecord.Name.ToLower()) && (cmdletName == param.CmdletName)) // { // LocalParamDescription = param.NewDescription; // Globbing = param.Globbing; // break; // } //} // Parameter Metadata for the Syntax Item section. writer.WriteRaw(" <command:parameter "); writer.WriteRaw("required = \"" + param.isMandatory.ToString().ToLower() + "\""); //Do variable length verification String parametertype = param.ParameterType; int LengthName = parametertype.Length; String VariableLength = "false"; if (LengthName > 2) { if (parametertype[LengthName - 1] == ']' && parametertype[LengthName - 2] == '[') { VariableLength = "true"; } } writer.WriteRaw(" variableLength = \"" + VariableLength + "\""); // TODO add code for globbing here. String strGlobbing = "false"; if (Globbing) { strGlobbing = "true"; } writer.WriteRaw(" globbing = \"" + strGlobbing + "\""); String pipelineInput; if (param.VFP || param.VFPBPN) { pipelineInput = "true ("; if (param.VFP) { pipelineInput += "ByValue"; } if (param.VFPBPN) { if (pipelineInput.Length > 6) { pipelineInput += ", ByPropertyName)"; } else { pipelineInput += "ByPropertyName)"; } } else { pipelineInput += ")"; } } else { pipelineInput = "false"; } writer.WriteRaw(" pipelineInput = \"" + pipelineInput + "\""); //Positional? // int position; // if (param.Position < 0) // { // writer.WriteRaw(" position = \"named\">"); // } // else // { // position = (Parameterecord.Position + 1); writer.WriteRaw(" position = \"" + param.Position + "\" >\r\n"); // } //Maml parameter name. // writer.WriteRaw(" <!--Parameter Name-->\r\n"); writer.WriteRaw(" <maml:name>"); writer.WriteRaw(HttpUtility.HtmlEncode(param.Name)); writer.WriteRaw("</maml:name>\r\n"); //Parameter description // writer.WriteRaw("maml", "para", "http://schemas.microsoft.com/maml/2004/10"); writer.WriteRaw(" <maml:description>\r\n"); // writer.WriteRaw(" <!--Parameter Description->\r\n"); //Get the description from the struc. writer.WriteRaw(" <maml:para>"); writer.WriteRaw(HttpUtility.HtmlEncode(param.NewDescription)); writer.WriteRaw("</maml:para>\r\n"); writer.WriteRaw(" </maml:description>\r\n"); string paramValueRequired = "true"; if (param.ParameterType.ToLower() != "switchparameter") { //Additional parameter Values if (param.ParameterType.ToLower() == "boolean") { paramValueRequired = "false"; } //Additional parameter Values writer.WriteRaw(" <command:parameterValue "); writer.WriteRaw("required=\"" + paramValueRequired + "\""); writer.WriteRaw(" variableLength = \"" + VariableLength + "\" >"); writer.WriteRaw(HttpUtility.HtmlEncode(param.ParameterType)); writer.WriteRaw("</command:parameterValue>\r\n"); } //End <command:prameter> writer.WriteRaw(" </command:parameter>\r\n"); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message, "Error writing the XML File.", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); } //} return(writer); }
public XmlWriter createParameters(XmlWriter writer, parameterDecription parametersDescription) { try { if (!parametersDescription.HelpOnlyParameter) { string parametertype = parametersDescription.ParameterType.ToString(); int LengthName = parametertype.Length; String VariableLength = "false"; String strGlobbing = "false"; //String cmdletName = "CmdletName"; // TODO add real CmdletName CmdletsList.SelectedValue.ToString(); // foreach (HelpEditor.parameterDecription param in parametersDescription) // { // if ((parametersDescription.Name.ToLower() == Parameterecord.Name.ToLower()) && (cmdletName == param.CmdletName)) // { //LocalParamDescription = param.NewDescription; if (parametersDescription.Globbing) { strGlobbing = "true"; } // break; // } // } if (LengthName > 2) { if (parametertype[LengthName - 1] == ']' && parametertype[LengthName - 2] == '[') { VariableLength = "true"; } } String pipelineInput; if (parametersDescription.VFP || parametersDescription.VFPBPN) { pipelineInput = "true ("; if (parametersDescription.VFP) { pipelineInput += "ByValue"; } if (parametersDescription.VFPBPN) { if (pipelineInput.Length > 6) { pipelineInput += ", ByPropertyName)"; } else { pipelineInput += "ByPropertyName)"; } } else { pipelineInput += ")"; } } else { pipelineInput = "false"; } // Parameter Metadata for the Syntax Item section. writer.WriteRaw(" <command:parameter "); writer.WriteRaw("required=\"" + parametersDescription.isMandatory.ToString().ToLower() + "\""); writer.WriteRaw(" variableLength=\"" + VariableLength + "\""); writer.WriteRaw(" globbing=\"" + strGlobbing + "\""); writer.WriteRaw(" pipelineInput=\"" + pipelineInput + "\""); //int position; //if (Parameterecord.Position < 0) //{ // writer.WriteRaw(" position=\"named\">\r\n"); //} //else //{ // position = (Parameterecord.Position + 1); writer.WriteRaw(" position=\"" + parametersDescription.Position + "\">\r\n"); // } //Maml parameter name. writer.WriteRaw(" <maml:name>"); //writer.WriteComment("Parameter Name"); writer.WriteRaw(HttpUtility.HtmlEncode(parametersDescription.Name)); writer.WriteRaw("</maml:name>\r\n"); //Parameter description writer.WriteRaw(" <maml:description>\r\n"); //writer.WriteComment("Parameter Description"); writer.WriteRaw(" <maml:para>"); String LocalParamDescription = ""; //foreach (HelpEditor.parameterDecription param in parametersDescription) //{ // if (param.Name.ToLower() == Parameterecord.Name.ToLower()) // TODO add real CmdletName && (String) this.CmdletsList.SelectedValue == param.CmdletName) // { LocalParamDescription = HttpUtility.HtmlEncode(parametersDescription.NewDescription); // } //} writer.WriteRaw(LocalParamDescription); writer.WriteRaw("</maml:para>\r\n"); writer.WriteRaw(" </maml:description>\r\n"); string paramValueRequired = "true"; if (parametersDescription.ParameterType.ToLower() != "switchparameter") { if (parametersDescription.ParameterType.ToLower() == "boolean") { paramValueRequired = "false"; } //Additional parameter Values writer.WriteRaw(" <command:parameterValue "); writer.WriteRaw("required=\"" + paramValueRequired + "\""); writer.WriteRaw(" variableLength=\"" + VariableLength + "\">"); writer.WriteRaw(HttpUtility.HtmlEncode(parametersDescription.ParameterType)); writer.WriteRaw("</command:parameterValue>\r\n"); } //Dev Type writer.WriteRaw(" <dev:type>\r\n"); writer.WriteRaw(" <maml:name>"); //writer.WriteComment("Parameter Type"); writer.WriteRaw(HttpUtility.HtmlEncode(parametersDescription.ParameterType)); writer.WriteRaw("</maml:name>\r\n");//maml:name writer.WriteRaw(" <maml:uri/>\r\n"); //writer.WriteComment("uri"); //writer.WriteRaw();//maml:uri writer.WriteRaw(" </dev:type>\r\n"); //dev:type //Dev Default Value. //TODO writer.WriteRaw(" <dev:defaultValue>"); //writer.WriteComment("Default Value"); writer.WriteRaw(HttpUtility.HtmlEncode(parametersDescription.DefaultValue)); writer.WriteRaw("</dev:defaultValue>\r\n"); //<command:parameter required="true" variableLength="false" globbing="true" pipelineInput="true (ByPropertyName)" position="1"> // <maml:name><!-- Prameter Name --></maml:name> // <maml:description> // <maml:para><!-- Parameter Description --></maml:para> // </maml:description> // <command:parameterValue required="true" variableLength="false">string[]</command:parameterValue> // <dev:type> // <maml:name><!-- Prameter Type --></maml:name> // <maml:uri/> // </dev:type> // <dev:defaultValue><!-- Default Value --></dev:defaultValue> //</command:parameter> //End <command:parameter> writer.WriteRaw(" </command:parameter>\r\n"); } return(writer); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message, "Error writing the XML File.", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); return(writer); } }