35 lines
805 B
C#
35 lines
805 B
C#
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));
|
|
}
|
|
|
|
} |