EnumPolicyExtension.cs (4420B)
1 // ----------------------------------------------------------------------------- 2 // <copyright file="EnumPolicyExtension.cs" company="Microsoft Corporation"> 3 // Copyright (c) Microsoft Corporation. Licensed under the MIT License. 4 // </copyright> 5 // ----------------------------------------------------------------------------- 6 7 namespace Microsoft.WinGet.SharedLib.Extensions 8 { 9 using Microsoft.WinGet.SharedLib.Exceptions; 10 using Microsoft.WinGet.SharedLib.PolicySettings; 11 using Microsoft.WinGet.SharedLib.Resources; 12 13 /// <summary> 14 /// Implements extensions methods around Group Policy Enum type. 15 /// </summary> 16 public static class EnumPolicyExtension 17 { 18 /// <summary> 19 /// Gets ResourceString for the mapped Policy type. 20 /// </summary> 21 /// <param name="policy">Policy.</param> 22 /// <returns>Resource string.</returns> 23 public static string GetResourceString(this Policy policy) 24 { 25 switch (policy) 26 { 27 case Policy.WinGet: 28 return GroupPolicyResource.PolicyEnableWinGet; 29 case Policy.Settings: 30 return GroupPolicyResource.PolicyEnableWinGetSettings; 31 case Policy.ExperimentalFeatures: 32 return GroupPolicyResource.PolicyEnableExperimentalFeatures; 33 case Policy.LocalManifestFiles: 34 return GroupPolicyResource.PolicyEnableLocalManifests; 35 case Policy.HashOverride: 36 return GroupPolicyResource.PolicyEnableHashOverride; 37 case Policy.LocalArchiveMalwareScanOverride: 38 return GroupPolicyResource.PolicyEnableLocalArchiveMalwareScanOverride; 39 case Policy.DefaultSource: 40 return GroupPolicyResource.PolicyEnableDefaultSource; 41 case Policy.MSStoreSource: 42 return GroupPolicyResource.PolicyEnableMSStoreSource; 43 case Policy.AdditionalSources: 44 return GroupPolicyResource.PolicyAdditionalSources; 45 case Policy.AllowedSources: 46 return GroupPolicyResource.PolicyAllowedSources; 47 case Policy.BypassCertificatePinningForMicrosoftStore: 48 return GroupPolicyResource.PolicyEnableBypassCertificatePinningForMicrosoftStore; 49 case Policy.WinGetCommandLineInterfaces: 50 return GroupPolicyResource.PolicyEnableWindowsPackageManagerCommandLineInterfaces; 51 case Policy.Configuration: 52 return GroupPolicyResource.PolicyEnableWinGetConfiguration; 53 default: 54 return string.Empty; 55 } 56 } 57 58 /// <summary> 59 /// Gets failure string mapped to GroupPolicyFailureType. 60 /// </summary> 61 /// <param name="policyFailure">GroupPolicyFailureType.</param> 62 /// <returns>Failure resources string.</returns> 63 public static string GetFailureString(this GroupPolicyFailureType policyFailure) 64 { 65 switch (policyFailure) 66 { 67 case GroupPolicyFailureType.BlockedByPolicy: 68 return GroupPolicyResource.ErrorBlockedByPolicy; 69 case GroupPolicyFailureType.NotFound: 70 return GroupPolicyResource.PolicyNotFound; 71 case GroupPolicyFailureType.LoadError: 72 return GroupPolicyResource.PolicyLoadError; 73 default: return string.Empty; 74 } 75 } 76 77 /// <summary> 78 /// Gets ErrorCode mapped to GroupPolicyFailureType. 79 /// </summary> 80 /// <param name="policyFailure">GroupPolicyFailureType.</param> 81 /// <returns>ErrorCode.</returns> 82 public static int GetErrorCode(this GroupPolicyFailureType policyFailure) 83 { 84 switch (policyFailure) 85 { 86 case GroupPolicyFailureType.BlockedByPolicy: 87 return ErrorCodes.AppInstallerCLIErrorBlockedByPolicy; 88 case GroupPolicyFailureType.NotFound: 89 case GroupPolicyFailureType.LoadError: 90 default: 91 return ErrorCodes.AppInstallerCLIErrorInternalError; 92 } 93 } 94 } 95 }