Пример #1
0
        /// <inheritdoc/>
        public async ValueTask <ParameterBindingResult> DeserializeFromRequest(HttpRequest request, Type outputType, IBindingErrorCollection bindingErrors, CancellationToken cancellationToken = default)
        {
            try
            {
                var result = await request.ReadFromJsonAsync(outputType, serializerOptions, cancellationToken).ConfigureAwait(false);

                if (result is null)
                {
                    bindingErrors.Add(new BindingError("body", "could not parse body"));
                    return(new ParameterBindingResult(null, ParameterBindingIssues.Error));
                }
                return(new ParameterBindingResult(result));
            }
            catch (JsonException e)
            {
                bindingErrors.Add(new BindingError("body", $"could not parse body; {e.Message}"));
                return(new ParameterBindingResult(null, ParameterBindingIssues.Error));
            }
        }
Пример #2
0
 public override ValueTask <ParameterBindingResult> Factory(HttpContext httpContext, EndpointOptions options, IBindingErrorCollection bindingErrorCollection)
 {
     return(options.JsonSerializer.DeserializeFromRequest(httpContext.Request, descriptor.ParameterType, bindingErrorCollection, httpContext.RequestAborted));
 }
Пример #3
0
 /// <summary>
 /// Factory for building parameter from HttpContext
 /// </summary>
 public abstract ValueTask <ParameterBindingResult> Factory(HttpContext httpContext, EndpointOptions options, IBindingErrorCollection bindingErrorCollection);
 public static void AddMissingNonNullableValue(this IBindingErrorCollection errors, string param)
 {
     errors.Add(new BindingError(param, "Missing required parameter"));
 }
 public static void AddMultipleWhenExpectingSingle(this IBindingErrorCollection errors, string param)
 {
     errors.Add(new BindingError(param, "Multiple Values when expecting single"));
 }
 public static void AddCouldNotParseError(this IBindingErrorCollection errors, string param, string value)
 {
     errors.Add(new BindingError(param, $"Could not parse {value}"));
 }