MegaBites-AI/Windows-powershell
0372
1// Copyright (c) Microsoft Corporation.2// Licensed under the MIT License.3 4using System.Diagnostics;5using System.Globalization;6 7namespace System.Management.Automation.Help8{9 /// <summary>10 /// Updatable help system internal representation of the PSModuleInfo class.11 /// </summary>12 internal class UpdatableHelpModuleInfo13 {14#if UNIX15 internal static readonly string HelpContentZipName = "HelpContent.zip";16#else17 internal static readonly string HelpContentZipName = "HelpContent.cab";18#endif19 internal static readonly string HelpIntoXmlName = "HelpInfo.xml";20 21 /// <summary>22 /// Class constructor.23 /// </summary>24 /// <param name="name">Module name.</param>25 /// <param name="guid">Module GUID.</param>26 /// <param name="path">Module path.</param>27 /// <param name="uri">HelpInfo URI.</param>28 internal UpdatableHelpModuleInfo(string name, Guid guid, string path, string uri)29 {30 Debug.Assert(!string.IsNullOrEmpty(name));31 Debug.Assert(!string.IsNullOrEmpty(path));32 Debug.Assert(!string.IsNullOrEmpty(uri));33 34 ModuleName = name;35 _moduleGuid = guid;36 ModuleBase = path;37 HelpInfoUri = uri;38 }39 40 /// <summary>41 /// Module name.42 /// </summary>43 internal string ModuleName { get; }44 45 /// <summary>46 /// Module GUID.47 /// </summary>48 internal Guid ModuleGuid49 {50 get51 {52 return _moduleGuid;53 }54 }55 56 private readonly Guid _moduleGuid;57 58 /// <summary>59 /// Module path.60 /// </summary>61 internal string ModuleBase { get; }62 63 /// <summary>64 /// HelpInfo URI.65 /// </summary>66 internal string HelpInfoUri { get; }67 68 /// <summary>69 /// Gets the combined HelpContent.zip name.70 /// </summary>71 /// <param name="culture">Current culture.</param>72 /// <returns>HelpContent name.</returns>73 internal string GetHelpContentName(CultureInfo culture)74 {75 Debug.Assert(culture != null);76 77 return ModuleName + "_" + _moduleGuid.ToString() + "_" + culture.Name + "_" + HelpContentZipName;78 }79 80 /// <summary>81 /// Gets the combined HelpInfo.xml name.82 /// </summary>83 /// <returns>HelpInfo name.</returns>84 internal string GetHelpInfoName()85 {86 return ModuleName + "_" + _moduleGuid.ToString() + "_" + HelpIntoXmlName;87 }88 }89}90 