private void BuildAndRun(bool runExecutable) { var citrusDirectory = CalcCitrusDirectory(); Environment.CurrentDirectory = Path.Combine(citrusDirectory, "Orange"); ClearObjFolder(citrusDirectory); OnBuildStatusChange?.Invoke("Building"); if (AreRequirementsMet() && Build(SolutionPath ?? DefaultSolutionPath)) { ClearObjFolder(citrusDirectory); if (runExecutable) { RunExecutable(); } OnBuildSuccess?.Invoke(); } else { if (!areFailedDetailsSet) { SetFailedBuildStatus("Send this text to our developers."); } OnBuildFail?.Invoke(); } }
private void SetFailedBuildStatus(string details = null) { if (string.IsNullOrEmpty(details)) { details = "Send this text to our developers."; } OnBuildStatusChange?.Invoke($"Build failed. {details}"); OnBuildFail?.Invoke(); }
public Task Start(bool runExecutable) { var task = new Task(() => { try { SynchronizeAllProjects(); BuildAndRun(runExecutable); } catch (Exception e) { Console.WriteLine(e.Message); OnBuildFail?.Invoke(); } }); task.Start(); return(task); }