/// <summary>
/// Command line driven method.
/// <example>
/// /WR "Easy Start Report" "c:\temp\Easy Start Report.txt"
/// /WR "C:\Users\%USERNAME%\AppData\Roaming\SpaceEngineersDedicated\Saves\Super Excellent Map\sandbox.sbc" "c:\temp\Super Excellent Map.txt"
/// /WR "C:\Users\%USERNAME%\AppData\Roaming\SpaceEngineersDedicated\Saves\Super Excellent Map" "c:\temp\Super Excellent Map.txt"
/// /WR "\\SERVER\Dedicated Saves\Super Excellent Map" "\\SERVER\Reports\Super Excellent Map.txt"
/// </example>
/// </summary>
/// <param name="baseModel"></param>
/// <param name="args"></param>
public static void GenerateOfflineReport(ExplorerModel baseModel, string[] args)
{
var argList = args.ToList();
var comArgs = args.Where(a => a.ToUpper() == "/WR" || a.ToUpper() == "-WR").Select(a => { return a; }).ToArray();
foreach (var a in comArgs) argList.Remove(a);
if (argList.Count < 2)
{
Environment.Exit(2);
return;
}
var findSession = argList[0].ToUpper();
var reportFile = argList[1];
var reportExtension = Path.GetExtension(reportFile).ToUpper();
if (reportExtension != ".HTM" &&
reportExtension != ".HTML" &&
reportExtension != ".TXT" &&
reportExtension != ".XML")
{
Environment.Exit(1);
return;
}
if (File.Exists(findSession))
{
findSession = Path.GetDirectoryName(findSession);
}
WorldResource world;
if (Directory.Exists(findSession))
{
world = SelectWorldModel.LoadSession(findSession);
}
else
{
world = SelectWorldModel.FindSaveSession(SpaceEngineersConsts.BaseLocalPath.SavesPath, findSession);
}
if (world == null)
{
Environment.Exit(3);
return;
}
baseModel.ActiveWorld = world;
baseModel.ActiveWorld.LoadDefinitionsAndMods();
baseModel.ActiveWorld.LoadSector(true);
baseModel.ParseSandBox();
var model = new ResourceReportModel();
model.Load(baseModel.ActiveWorld.Savename, baseModel.Structures);
model.GenerateReport();
TempfileUtil.Dispose();
if (reportExtension == ".HTM" || reportExtension == ".HTML")
File.WriteAllText(reportFile, model.CreateHtmlReport());
if (reportExtension == ".TXT")
File.WriteAllText(reportFile, model.CreateTextReport());
if (reportExtension == ".XML")
File.WriteAllText(reportFile, model.CreateXmlReport());
Environment.Exit(0);
}