winget-cli

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

PSInstalledCatalogPackage.cs (1995B)


      1 // -----------------------------------------------------------------------------
      2 // <copyright file="PSInstalledCatalogPackage.cs" company="Microsoft Corporation">
      3 //     Copyright (c) Microsoft Corporation. Licensed under the MIT License.
      4 // </copyright>
      5 // -----------------------------------------------------------------------------
      6 
      7 namespace Microsoft.WinGet.Client.Engine.PSObjects
      8 {
      9     using System;
     10     using Microsoft.Management.Deployment;
     11 
     12     /// <summary>
     13     /// InstalledCatalogPackage wrapper object for displaying to PowerShell.
     14     /// </summary>
     15     public sealed class PSInstalledCatalogPackage : PSCatalogPackage
     16     {
     17         /// <summary>
     18         /// Initializes a new instance of the <see cref="PSInstalledCatalogPackage"/> class.
     19         /// </summary>
     20         /// <param name="catalogPackage">The catalog package COM object.</param>
     21         internal PSInstalledCatalogPackage(CatalogPackage catalogPackage)
     22             : base(catalogPackage)
     23         {
     24         }
     25 
     26         /// <summary>
     27         /// Gets the installed version of the catalog package.
     28         /// </summary>
     29         public string InstalledVersion
     30         {
     31             get { return this.CatalogPackageCOM.InstalledVersion.Version; }
     32         }
     33 
     34         /// <summary>
     35         /// Compares versions.
     36         /// </summary>
     37         /// <param name="version">Version.</param>
     38         /// <returns>PSCompareResult.</returns>
     39         public PSCompareResult CompareToVersion(string version)
     40         {
     41             return this.CatalogPackageCOM.InstalledVersion.CompareToVersion(version) switch
     42             {
     43                 CompareResult.Unknown => PSCompareResult.Unknown,
     44                 CompareResult.Lesser => PSCompareResult.Lesser,
     45                 CompareResult.Equal => PSCompareResult.Equal,
     46                 CompareResult.Greater => PSCompareResult.Greater,
     47                 _ => throw new InvalidOperationException(),
     48             };
     49         }
     50     }
     51 }