public IResult <TData> ValidationError <TData>(ValidationResult result, string target = "") { if (result == null) { throw new VanthException("Cannot create a validation error without the validation result"); } if (result.IsValid || !result.Errors.Any()) { return(new Result <TData>()); } IErrorBuilder error = DefaultError <TData>(CommonErrorCode.ValidationError, CommonErrorType.ValidationError, CommonErrorMessage.ValidationError, target); foreach (ValidationFailure failure in result.Errors) { error.WithDetail(builder => builder.WithErrorCode(failure.ErrorCode) .WithMessage(failure.ErrorMessage) .WithTarget($"Property: {failure.PropertyName}") .Build()); } return(DefaultResult <TData>(error, null, CommonErrorCode.ValidationError)); }
private IResult <TData> DefaultResult <TData>(IErrorBuilder builder, IErrorDetail detail, string errorCode) { var statusCode = Convert.ToInt32(errorCode); if (detail is null) { return(new Result <TData>().AddError(builder.Build()).AddStatusCode(statusCode)); } builder.WithDetail(detail); return(new Result <TData>().AddError(builder.Build()).AddStatusCode(statusCode)); }