2020-08-12 11:46:11 -07:00
|
|
|
|
// Copyright (c) Microsoft Corporation
|
|
|
|
|
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
|
|
|
|
|
// See the LICENSE file in the project root for more information.
|
|
|
|
|
|
|
2020-07-21 10:26:37 -07:00
|
|
|
|
using System;
|
2020-07-14 11:44:50 -07:00
|
|
|
|
using System.IO;
|
2020-08-12 11:46:11 -07:00
|
|
|
|
using Microsoft.Plugin.Program.Logger;
|
2020-07-14 11:44:50 -07:00
|
|
|
|
using Package = Windows.ApplicationModel.Package;
|
2020-07-10 13:43:02 -07:00
|
|
|
|
|
|
|
|
|
|
namespace Microsoft.Plugin.Program.Programs
|
|
|
|
|
|
{
|
|
|
|
|
|
public class PackageWrapper : IPackage
|
|
|
|
|
|
{
|
2020-07-14 11:44:50 -07:00
|
|
|
|
public string Name { get; } = string.Empty;
|
2020-07-10 13:43:02 -07:00
|
|
|
|
|
2020-07-14 11:44:50 -07:00
|
|
|
|
public string FullName { get; } = string.Empty;
|
2020-07-10 13:43:02 -07:00
|
|
|
|
|
2020-07-14 11:44:50 -07:00
|
|
|
|
public string FamilyName { get; } = string.Empty;
|
2020-07-10 13:43:02 -07:00
|
|
|
|
|
2020-07-14 11:44:50 -07:00
|
|
|
|
public bool IsFramework { get; } = false;
|
2020-07-10 13:43:02 -07:00
|
|
|
|
|
2020-07-14 11:44:50 -07:00
|
|
|
|
public bool IsDevelopmentMode { get; } = false;
|
2020-07-10 13:43:02 -07:00
|
|
|
|
|
2020-07-14 11:44:50 -07:00
|
|
|
|
public string InstalledLocation { get; } = string.Empty;
|
|
|
|
|
|
|
2020-08-14 09:22:12 -07:00
|
|
|
|
public PackageWrapper()
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
2020-07-10 13:43:02 -07:00
|
|
|
|
|
|
|
|
|
|
public PackageWrapper(string Name, string FullName, string FamilyName, bool IsFramework, bool IsDevelopmentMode, string InstalledLocation)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.Name = Name;
|
|
|
|
|
|
this.FullName = FullName;
|
|
|
|
|
|
this.FamilyName = FamilyName;
|
|
|
|
|
|
this.IsFramework = IsFramework;
|
|
|
|
|
|
this.IsDevelopmentMode = IsDevelopmentMode;
|
|
|
|
|
|
this.InstalledLocation = InstalledLocation;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static PackageWrapper GetWrapperFromPackage(Package package)
|
|
|
|
|
|
{
|
2020-08-13 15:31:14 -07:00
|
|
|
|
if (package == null)
|
2020-08-11 09:08:44 -07:00
|
|
|
|
{
|
|
|
|
|
|
throw new ArgumentNullException(nameof(package));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2020-07-21 10:26:37 -07:00
|
|
|
|
string path;
|
2020-07-14 11:44:50 -07:00
|
|
|
|
try
|
|
|
|
|
|
{
|
2020-07-22 13:27:17 -07:00
|
|
|
|
path = package.InstalledLocation.Path;
|
2020-07-14 11:44:50 -07:00
|
|
|
|
}
|
2020-07-21 10:26:37 -07:00
|
|
|
|
catch (Exception e) when (e is ArgumentException || e is FileNotFoundException)
|
2020-07-14 11:44:50 -07:00
|
|
|
|
{
|
2020-07-21 10:26:37 -07:00
|
|
|
|
ProgramLogger.LogException($"PackageWrapper", "GetWrapperFromPackage", "package.InstalledLocation.Path", $"Exception {package.Id.Name}", e);
|
2020-07-31 12:33:05 -07:00
|
|
|
|
return new PackageWrapper(
|
|
|
|
|
|
package.Id.Name,
|
|
|
|
|
|
package.Id.FullName,
|
|
|
|
|
|
package.Id.FamilyName,
|
|
|
|
|
|
package.IsFramework,
|
2020-08-13 15:31:14 -07:00
|
|
|
|
package.IsDevelopmentMode,
|
2020-07-31 12:33:05 -07:00
|
|
|
|
string.Empty);
|
2020-07-14 11:44:50 -07:00
|
|
|
|
}
|
2020-07-21 10:26:37 -07:00
|
|
|
|
|
|
|
|
|
|
return new PackageWrapper(
|
|
|
|
|
|
package.Id.Name,
|
|
|
|
|
|
package.Id.FullName,
|
|
|
|
|
|
package.Id.FamilyName,
|
2020-07-22 13:27:17 -07:00
|
|
|
|
package.IsFramework,
|
2020-07-21 10:26:37 -07:00
|
|
|
|
package.IsDevelopmentMode,
|
2020-08-14 09:22:12 -07:00
|
|
|
|
path);
|
2020-07-10 13:43:02 -07:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|