37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
using System;
|
|
|
|
namespace NixWslWrapper.Core.Domain
|
|
{
|
|
public class ExecutionResult
|
|
{
|
|
public int ExitCode { get; }
|
|
public bool IsSuccess => ExitCode == 0;
|
|
public string? ErrorMessage { get; }
|
|
|
|
public ExecutionResult(int exitCode, string? errorMessage = null)
|
|
{
|
|
ExitCode = exitCode;
|
|
ErrorMessage = errorMessage;
|
|
}
|
|
|
|
public static ExecutionResult Success() => new ExecutionResult(0);
|
|
public static ExecutionResult Failure(int exitCode, string errorMessage) => new ExecutionResult(exitCode, errorMessage);
|
|
|
|
public override bool Equals(object? obj)
|
|
{
|
|
if (obj is not ExecutionResult other) return false;
|
|
return ExitCode == other.ExitCode && string.Equals(ErrorMessage, other.ErrorMessage, StringComparison.Ordinal);
|
|
}
|
|
|
|
public override int GetHashCode()
|
|
{
|
|
return HashCode.Combine(ExitCode, ErrorMessage);
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return IsSuccess ? "Success" : $"Failed with Exit Code {ExitCode}. Error: {ErrorMessage}";
|
|
}
|
|
}
|
|
}
|