static void BeginNewJob() { int result = GetInputFiles(out var fileList, out var args); if (result < 0) { return; //Do nothing, terminate the application } currentJob = new Job() { importArgs = args, batchMode = result > 0 }; currentJob.AddInputFiles(fileList.ToArray()); //Add console feedback currentJob.FileImported += (int i, string s) => { }; currentJob.FileImportFailed += (int i, string s, Exception e) => { WriteError("IMPORT FAILED: " + s); WriteError(e.ToString()); }; currentJob.FileExported += (int i, string s) => { if (!currentJob.batchMode) { WriteSuccess("EXPORT SUCCESSFUL"); } else { WriteSuccess($"EXPORT {i + 1}/{currentJob.InputFileList.Count} SUCCESSFUL"); } }; currentJob.FileExportFailed += (int i, string s, Exception e) => { if (!currentJob.batchMode) { WriteError("EXPORT FAILED: " + s); } else { WriteError($"EXPORT {i}/{currentJob.InputFileList.Count} FAILED:"); } WriteError(e.ToString()); }; currentJob.ExportCompleted += () => { if (currentJob.batchMode) { WriteSuccess("DONE!"); } }; }