JD2022-TU1/main/tools/apps/DTestConsoleHelper/DTestXoneHelper.cs

88 lines
2.9 KiB
C#

using System.IO;
using System.Linq;
using Kitt.Platforms;
using Kitt.Platforms.XBox_One;
namespace DTestConsoleHelper
{
public class DTestXoneHelper : IDTestPlatforms
{
/// <summary>
///
/// </summary>
/// <param name="path">Path of loose or package that needs to be streamed to console</param>
/// <param name="seekAumidName">search for final, debug or release package aumid</param>
/// <returns>Returns the Aumid of the version that you mentioned</returns>
public string Stream(string path, string seekAumidName)
{
var process = XOneNET.PullDeploy(path);
if (!string.IsNullOrEmpty(seekAumidName))
return process.StandardOutput.ReadLines().FirstOrDefault(name => name.Contains(seekAumidName))?.Trim();
return process.StandardOutput.ReadLines()?.Last()?.Trim();
}
public string Push(string path, string seekAumidName)
{
var process = XOneNET.PushDeploy(path);
if (!string.IsNullOrEmpty(seekAumidName))
return process.StandardOutput.ReadLines().FirstOrDefault(name => name.Contains(seekAumidName))?.Trim();
return process.StandardOutput.ReadLines()?.Last()?.Trim();
}
public string GetPackageName(string folder)
{
return new DirectoryInfo(folder).EnumerateFiles()
.OrderByDescending(file => file.Length)
.FirstOrDefault().Name;
}
public string GetInstalledPackageName()
{
var applist = XOneNET.AppList();
return applist.StandardOutput.ReadLines()
?.FirstOrDefault(packageName => packageName.Contains("JD20") && packageName.Contains("!"))?.Trim();
}
public string PackageFilePath(string folder)
{
var packageName = GetPackageName(folder);
return Path.Combine(folder, packageName);
}
public void InstallPackageFromPath(string folder)
{
var packageName = GetPackageName(folder);
var path = Path.Combine(folder, packageName);
var process = XOneNET.Install(path);
process.WaitForExit();
}
public void Stop()
{
XOneNET.StopDeploy();
}
/// <summary>
/// Launch the Xone package with Aumid
/// </summary>
/// <param name="aumid">Aumid of the package that needs to be launched</param>
public void Launch(string aumid, string parameters)
{
XOneNET.Launch(aumid, parameters);
}
public string GetAumid(string version)
{
var apps = XOneNET.AppList();
if (!string.IsNullOrEmpty(version))
return apps.StandardOutput.ReadLines().FirstOrDefault(name => name.Contains(version))?.Trim();
return apps.StandardOutput.ReadLines()?.Last()?.Trim();
}
}
}