Initial commit: Nix WSL Wrapper project with DDD, Clean Code, and tests
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
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}";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user