88 lines
2.9 KiB
C#
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();
|
|
|
|
}
|
|
}
|
|
}
|