48 lines
1.1 KiB
C#
48 lines
1.1 KiB
C#
namespace Finch.Extensions;
|
|
|
|
public static class ResultExtensions
|
|
{
|
|
public static Result WithoutModel<TSource>(this Result<TSource> origin)
|
|
{
|
|
Result result = new();
|
|
result.IsSuccess = origin.IsSuccess;
|
|
result.Errors = origin.Errors;
|
|
return result;
|
|
}
|
|
|
|
public static Result<TTarget> ConvertTo<TTarget>(this Result origin, TTarget model)
|
|
{
|
|
Result<TTarget> result = new();
|
|
result.IsSuccess = origin.IsSuccess;
|
|
result.Errors = origin.Errors;
|
|
result.Model = model;
|
|
return result;
|
|
}
|
|
|
|
|
|
public static Result AddError(this Result origin, string property, string message)
|
|
{
|
|
origin.IsSuccess = false;
|
|
origin.Errors.Add(new(property, message));
|
|
return origin;
|
|
}
|
|
|
|
|
|
public static Result AddError(this Result origin, string message)
|
|
{
|
|
origin.IsSuccess = false;
|
|
origin.Errors.Add(new("__finch_no_field", message));
|
|
return origin;
|
|
}
|
|
|
|
|
|
public static Result AppendErrors(this Result origin, Result with)
|
|
{
|
|
foreach (ResultError error in with.Errors)
|
|
{
|
|
origin.Errors.Add(error);
|
|
}
|
|
origin.IsSuccess = origin.Errors.Any();
|
|
return origin;
|
|
}
|
|
} |