SHA256
feat StayExport - Added common Interface "IResult" for Result so both (generic and non-generic one) can be used easier.
This commit is contained in:
@@ -2,7 +2,18 @@ using Somnia.GuestLog.Enums.Services;
|
||||
|
||||
namespace Somnia.GuestLog.Models.DTOs;
|
||||
|
||||
public sealed record Result(bool IsSuccess, ResultCode ResultCode, params object[]? Context)
|
||||
public interface IResult
|
||||
{
|
||||
bool IsSuccess { get; }
|
||||
ResultCode ResultCode { get; }
|
||||
object[]? Context { get; }
|
||||
}
|
||||
|
||||
public sealed record Result(
|
||||
bool IsSuccess,
|
||||
ResultCode ResultCode,
|
||||
params object[]? Context
|
||||
) : IResult
|
||||
{
|
||||
public static Result Ok() => new(IsSuccess: true, ResultCode: ResultCode.Ok, Context: null);
|
||||
|
||||
@@ -15,7 +26,12 @@ public sealed record Result(bool IsSuccess, ResultCode ResultCode, params object
|
||||
public bool IsUnknownError => !IsSuccess && ResultCode == ResultCode.UnknownError;
|
||||
}
|
||||
|
||||
public sealed record Result<T>(bool IsSuccess, T? Value, ResultCode ResultCode, params object[]? Context)
|
||||
public sealed record Result<T>(
|
||||
bool IsSuccess,
|
||||
T? Value,
|
||||
ResultCode ResultCode,
|
||||
params object[]? Context
|
||||
) : IResult
|
||||
{
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user