feat: DTOs, Result Type
This commit is contained in:
54
TicketAppIncrArchi.Application/Common/Result.cs
Normal file
54
TicketAppIncrArchi.Application/Common/Result.cs
Normal 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);
|
||||
|
||||
}
|
||||
*/
|
||||
Reference in New Issue
Block a user