winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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 }