/// <summary> /// Cause the Main() to return with a given status code. /// </summary> /// <param name="exitCode">Reason for termination.</param> /// <returns>Exits before returning the exit code.</returns> public static int ExitProgramWithCode(ExitCode exitCode) { // Flush the logs by disposing the factory _loggerFactory?.Dispose(); if (exitCode != ExitCode.Success) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"----------------------------------"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"Exiting program with code {exitCode}"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"----------------------------------"); } DatabaseEventListenerService.CloseSession(exitCode); Env.ExitEnvironment((int)exitCode); return((int)exitCode); }