protected override async ValueTask <IReadOnlyList <GraphQLRequest> > GetRequestsFromBody(
            HttpRequest httpRequest,
            CancellationToken cancellationToken)
        {
            IFormCollection?form;

            try
            {
                var formFeature = new FormFeature(httpRequest, _formOptions);
                form = await formFeature.ReadFormAsync(cancellationToken);
            }
            catch (Exception exception)
            {
                throw ThrowHelper.HttpMultipartMiddleware_Invalid_Form(exception);
            }

            // Parse the string values of interest from the IFormCollection
            HttpMultipartRequest           multipartRequest = ParseMultipartRequest(form);
            IReadOnlyList <GraphQLRequest> requests         = RequestParser.ReadOperationsRequest(
                multipartRequest.Operations);

            foreach (var graphQLRequest in requests)
            {
                InsertFilesIntoRequest(graphQLRequest, multipartRequest.FileMap);
            }

            return(requests);
        }
Пример #2
0
 public override Task <IFormCollection> ReadFormAsync(CancellationToken cancellationToken)
 {
     return(FormFeature.ReadFormAsync(cancellationToken));
 }