using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Xml; using AWSPowerShellGenerator.Generators; namespace AWSPowerShellGenerator.Writers.Help { internal class ServiceCmdletsPageWriter : BasePageWriter { readonly string _moduleName; readonly string _title; private readonly IEnumerable _cmdlets; public ServiceCmdletsPageWriter(GeneratorOptions options, string outputFolder, string moduleName, string title, IEnumerable cmdlets) : base(options, outputFolder) { this._moduleName = moduleName; this._title = title; this._cmdlets = cmdlets; } public override string GetTOCID() { return string.Format("{0}_cmdlets", _moduleName.Replace(' ', '_').Replace('/', '_')); } public override string GenerateFilename() { return string.Format("{0}_cmdlets.html", _moduleName.Replace(' ', '_').Replace('/', '_')); } protected override string GetTitle() { return _title; } protected override string GetName() { return "AWS Tools for PowerShell - " + GetTitle(); } protected override string GetService() { return GetModuleAvailability(_moduleName); } protected override string GetMetaDescription() { return string.Format("{0} Cmdlets", _moduleName); } protected override void WriteContent(System.IO.TextWriter writer) { AddCmdlets(writer); } void AddCmdlets(TextWriter writer) { var legacyAliases = new List(); // might want sectioned output in future, eg to document type extensions AddMemberTableSectionHeader(writer, "Cmdlets", false); foreach (var cmdlet in _cmdlets.OrderBy(x => x.CmdletName)) { AddRow(writer, cmdlet, "class"); if (!string.IsNullOrEmpty(cmdlet.LegacyAlias)) legacyAliases.Add(cmdlet); } AddMemberTableSectionClosing(writer); if (legacyAliases.Count > 0) { AddMemberTableSectionHeader(writer, "Aliases", false); foreach (var cmdlet in legacyAliases.OrderBy(x => x.LegacyAlias)) { AddLegacyAliasRow(writer, cmdlet, "class"); } AddMemberTableSectionClosing(writer); } } void AddRow(TextWriter writer, TOCCmdletEntry cmdlet, string cssImageClass) { writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine("{0}", cmdlet.CmdletName); writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(cmdlet.Synopsis); writer.WriteLine(""); writer.WriteLine(""); } void AddLegacyAliasRow(TextWriter writer, TOCCmdletEntry cmdlet, string cssImageClass) { writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine("{1}", cmdlet.CmdletName, cmdlet.LegacyAlias); writer.WriteLine(""); writer.WriteLine(""); writer.WriteLine(cmdlet.Synopsis); writer.WriteLine(""); writer.WriteLine(""); } } }