private static ActionResult DefaultErrorTransformCore(ExecutionErrorCollection errors,
                                                              ExecutionHostController controller)
        {
            var firstError = errors.First();

            var problemDetails = new ProblemDetails()
            {
                Type     = "about:blank",
                Instance = controller.Request.GetEncodedUrl(),
                Status   = (int)firstError.Type,
                Detail   = firstError.Message,
                Title    = firstError.Type.ToString()
            };

            if (firstError.Type == ExecutionErrorType.ValidationFailed)
            {
                problemDetails = new ValidationProblemDetails()
                {
                    Type     = problemDetails.Type,
                    Instance = problemDetails.Instance,
                    Status   = problemDetails.Status,
                    Detail   = problemDetails.Detail,
                    Title    = problemDetails.Title,
                    Errors   = { { problemDetails.Title,
                                   errors.Where(e => e.Type == ExecutionErrorType.ValidationFailed)
                                   .Select(e => e.Message).ToArray() } }
                };
            }

            return(new ObjectResult(problemDetails)
            {
                StatusCode = problemDetails.Status
            });
        }
Пример #2
0
 internal ValueOrError(T?value, ExecutionErrorCollection errors)
 {
     this.value = value;
     Errors     = errors;
 }