Team Ai
Datasetpublic

MegaBites-AI/Windows-powershell

sourceHugging Facemitupdated 6mo agoView on Hugging Face
0likes372downloads
AliasHelpInfo.cs111 linesDownload Raw Back to help
1// Copyright (c) Microsoft Corporation.2// Licensed under the MIT License.3 4using System.Diagnostics.CodeAnalysis; // for fxcop5 6namespace System.Management.Automation7{8    /// <summary>9    /// Stores help information related to Alias Commands.10    /// </summary>11    internal sealed class AliasHelpInfo : HelpInfo12    {13        /// <summary>14        /// Initializes a new instance of the AliasHelpInfo class.15        /// </summary>16        /// <remarks>17        /// The constructor is private. The only way to create an18        /// AliasHelpInfo object is through static method <see cref="GetHelpInfo"/>19        /// </remarks>20        [SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]21        private AliasHelpInfo(AliasInfo aliasInfo)22        {23            _fullHelpObject = new PSObject();24 25            string name = (aliasInfo.ResolvedCommand == null) ? aliasInfo.UnresolvedCommandName : aliasInfo.ResolvedCommand.Name;26 27            this.ForwardTarget = name;28            // A Cmdlet/Function/Script etc can have alias.29            this.ForwardHelpCategory = HelpCategory.Cmdlet |30                HelpCategory.Function | HelpCategory.ExternalScript | HelpCategory.ScriptCommand | HelpCategory.Filter;31 32            if (!string.IsNullOrEmpty(aliasInfo.Name))33            {34                Name = aliasInfo.Name.Trim();35            }36 37            if (!string.IsNullOrEmpty(name))38            {39                Synopsis = name.Trim();40            }41 42            _fullHelpObject.TypeNames.Clear();43            _fullHelpObject.TypeNames.Add(string.Create(Globalization.CultureInfo.InvariantCulture, $"AliasHelpInfo#{Name}"));44            _fullHelpObject.TypeNames.Add("AliasHelpInfo");45            _fullHelpObject.TypeNames.Add("HelpInfo");46        }47 48        /// <summary>49        /// Returns the name of alias help.50        /// </summary>51        /// <value>Name of alias help.</value>52        internal override string Name { get; } = string.Empty;53 54        /// <summary>55        /// Returns synopsis of alias help.56        /// </summary>57        /// <value>Synopsis of alias help.</value>58        internal override string Synopsis { get; } = string.Empty;59 60        /// <summary>61        /// Help category for alias help. This is always HelpCategory.Alias.62        /// </summary>63        /// <value>Help category for alias help</value>64        internal override HelpCategory HelpCategory65        {66            get67            {68                return HelpCategory.Alias;69            }70        }71 72        private readonly PSObject _fullHelpObject;73 74        /// <summary>75        /// Returns full help object for alias help.76        /// </summary>77        /// <value>Full help object of alias help.</value>78        internal override PSObject FullHelp79        {80            get81            {82                return _fullHelpObject;83            }84        }85 86        /// <summary>87        /// Creates an AliasHelpInfo instance based on an AliasInfo object.88        /// This is the only way to create AliasHelpInfo object from outside this class.89        /// </summary>90        /// <param name="aliasInfo">AliasInfo object for which to create AliasHelpInfo object.</param>91        /// <returns>AliasHelpInfo object.</returns>92        internal static AliasHelpInfo GetHelpInfo(AliasInfo aliasInfo)93        {94            if (aliasInfo == null)95                return null;96 97            if (aliasInfo.ResolvedCommand == null && aliasInfo.UnresolvedCommandName == null)98                return null;99 100            AliasHelpInfo aliasHelpInfo = new AliasHelpInfo(aliasInfo);101 102            if (string.IsNullOrEmpty(aliasHelpInfo.Name))103                return null;104 105            aliasHelpInfo.AddCommonHelpProperties();106 107            return aliasHelpInfo;108        }109    }110}111