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 }