Files
SomniaGuestLog/src/Somnia.GuestLog/Models/DTOs/Result.cs
T
Daniel-Garmig 4f22cd4541 GuestLog - Moved Enums
- Enums moved to Enum folder (by type).
- ResultCode class changed to enum to ensure type safety in results.
2026-08-25 15:18:02 +02:00

26 lines
1.3 KiB
C#

using Somnia.GuestLog.Enums.Services;
namespace Somnia.GuestLog.Models.DTOs;
public sealed record Result(bool IsSuccess, ResultCode ResultCode, params object[]? Context)
{
public static Result Ok() => new(IsSuccess: true, ResultCode: ResultCode.Ok, Context: null);
public static Result Fail(ResultCode resultCode) => new(IsSuccess: false, resultCode, Context: null);
public static Result FailWithContext(ResultCode resultCode, params object[] context)
=> new(IsSuccess: false, resultCode, context);
public static Result FailUnknownError()
=> new(IsSuccess: false, ResultCode: ResultCode.UnknownError, Context: null);
public bool IsUnknownError => !IsSuccess && ResultCode == ResultCode.UnknownError;
}
public sealed record Result<T>(bool IsSuccess, T? Value, ResultCode ResultCode, params object[]? Context)
{
public static Result<T> Ok(T value) => new(IsSuccess: true, value, ResultCode: ResultCode.Ok, Context: null);
public static Result<T> Fail(ResultCode resultCode) => new(IsSuccess: false, Value: default, resultCode, Context: null);
public static Result<T> FailWithContext(ResultCode resultCode, params object[] context)
=> new(IsSuccess: false, Value: default, resultCode, context);
public bool IsUnknownError => !IsSuccess && ResultCode == ResultCode.UnknownError;
}