feat: DTOs, Result Type

This commit is contained in:
2026-03-16 19:37:11 +01:00
parent 4b1152614e
commit 4b99e238ca
5 changed files with 147 additions and 13 deletions

View File

@@ -0,0 +1,54 @@
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.SignalR;
public abstract class Result<T>
{
public abstract bool Success {get;}
public static Result<T> Ok(T value) => new SuccessResult<T>(value);
public static Result<T> Fail(string error) => new FailureResult<T>(error);
}
public sealed class SuccessResult<T> : Result<T>
{
public override bool Success => true;
public T Value {get;}
public SuccessResult(T value)
{
Value = value ?? throw new ArgumentNullException(nameof(value));
}
}
public sealed class FailureResult<T> : Result<T>
{
public override bool Success => false;
public string Error {get;}
public FailureResult(string error)
{
Error = error ?? throw new ArgumentNullException(nameof(error));
}
}
/*
private Result(bool success, T? value, string? error)
{
Success = success;
Value = value;
Error = error;
}
}
public static Result<T> Ok(T value)
=> new(true,value,null);
public static Result<T> Fail(string error)
=> new(false, default, error);
}
*/