Initial commit: Nix WSL Wrapper project with DDD, Clean Code, and tests

This commit is contained in:
Marek Novák
2026-07-01 02:04:43 +02:00
commit 161eb7d387
22 changed files with 932 additions and 0 deletions
@@ -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}";
}
}
}