Files
DotNetAngular/src/Application/Common/Results/Result.cs
T
2026-02-19 13:49:01 +01:00

37 lines
908 B
C#

namespace Application.Common.Results;
public class Result
{
protected Result(bool isSuccess, Error error)
{
if ((isSuccess && error != Error.None) || (!isSuccess && error == Error.None))
throw new InvalidOperationException("Invalid operation");
IsSuccess = isSuccess;
Error = error;
}
public bool IsSuccess { get; }
public bool IsFailure => !IsSuccess;
public Error Error { get; }
public static Result Success()
{
return new Result(true, Error.None);
}
public static Result<TValue> Success<TValue>(TValue value)
{
return new Result<TValue>(value, true, Error.None);
}
public static Result Failure(Error error)
{
return new Result(false, error);
}
public static Result<TValue> Failure<TValue>(Error error)
{
return new Result<TValue>(default!, false, error);
}
}