Ejemplo n.º 1
0
        public HttpPostMiddleware(
            RequestDelegate next,
            IHttpPostMiddlewareOptions options,
            IQueryExecutor queryExecutor,
            IBatchQueryExecutor batchQueryExecutor,
            IQueryResultSerializer resultSerializer,
            IResponseStreamSerializer streamSerializer,
            IDocumentCache documentCache,
            IDocumentHashProvider documentHashProvider,
            IErrorHandler errorHandler)
            : base(next, options, resultSerializer, errorHandler)
        {
            _queryExecutor = queryExecutor
                             ?? throw new ArgumentNullException(nameof(queryExecutor));
            _batchExecutor = batchQueryExecutor
                             ?? throw new ArgumentNullException(nameof(batchQueryExecutor));
            _resultSerializer = resultSerializer
                                ?? throw new ArgumentNullException(nameof(resultSerializer));
            _streamSerializer = streamSerializer
                                ?? throw new ArgumentNullException(nameof(streamSerializer));

            _requestHelper = new RequestHelper(
                documentCache,
                documentHashProvider,
                options.MaxRequestSize,
                options.ParserOptions);
        }
Ejemplo n.º 2
0
        protected QueryMiddlewareBase(
            RequestDelegate next,
            IPathOptionAccessor options,
            OwinContextAccessor owinContextAccessor,
            IServiceProvider services,
            IQueryResultSerializer serializer)
            : base(next)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            _accessor = owinContextAccessor;
            _services = services
                        ?? throw new ArgumentNullException(nameof(services));
            _serializer = serializer
                          ?? throw new ArgumentNullException(nameof(serializer));

            if (options.Path.Value.Length > 1)
            {
                var        path1 = new PathString(options.Path.Value.TrimEnd('/'));
                PathString path2 = path1.Add(new PathString("/"));
                _isPathValid = ctx => ctx.IsValidPath(path1, path2);
            }
            else
            {
                _isPathValid = ctx => ctx.IsValidPath(options.Path);
            }
        }
Ejemplo n.º 3
0
        protected QueryMiddlewareBase(
            RequestDelegate next,
            IPathOptionAccessor options,
            IQueryResultSerializer serializer,
            IErrorHandler errorHandler)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            _serializer = serializer
                          ?? throw new ArgumentNullException(nameof(serializer));
            ErrorHandler = errorHandler
                           ?? throw new ArgumentNullException(nameof(serializer));

            Next = next;

            if (options.Path.Value.Length > 1)
            {
                var        path1 = new PathString(options.Path.Value.TrimEnd('/'));
                PathString path2 = path1.Add(new PathString("/"));
                _isPathValid = ctx => ctx.IsValidPath(path1, path2);
            }
            else
            {
                _isPathValid = ctx => ctx.IsValidPath(options.Path);
            }
        }
        public static IApplicationBuilder UseGraphQLHttpGet(
            this IApplicationBuilder applicationBuilder,
            IServiceProvider serviceProvider,
            IHttpGetMiddlewareOptions options)
        {
            if (applicationBuilder == null)
            {
                throw new ArgumentNullException(nameof(applicationBuilder));
            }

            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            IQueryExecutor executor = serviceProvider
                                      .GetRequiredService <IQueryExecutor>();

            IQueryResultSerializer serializer = serviceProvider
                                                .GetRequiredService <IQueryResultSerializer>();

            OwinContextAccessor contextAccessor =
                serviceProvider.GetService <OwinContextAccessor>();

            return(applicationBuilder.Use <HttpGetMiddleware>(
                       options, contextAccessor, executor, serializer));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Instantiates the base query middleware with an optional pointer to
        /// the next component.
        /// </summary>
        /// <param name="next">
        /// An optional pointer to the next component.
        /// </param>
        /// <param name="queryExecutor">
        /// A required query executor resolver.
        /// </param>
        /// <param name="resultSerializer">
        /// </param>
        /// <param name="options">
        /// </param>
        protected QueryMiddlewareBase(
            RequestDelegate next,
            IQueryExecutor queryExecutor,
            IQueryResultSerializer resultSerializer,
            QueryMiddlewareOptions options)
#if ASPNETCLASSIC
            : base(next)
#endif
        {
#if !ASPNETCLASSIC
            Next = next;
#endif
            Executor = queryExecutor ??
                       throw new ArgumentNullException(nameof(queryExecutor));
            _resultSerializer = resultSerializer
                                ?? throw new ArgumentNullException(nameof(resultSerializer));
            Options = options ??
                      throw new ArgumentNullException(nameof(options));

            if (Options.Path.Value.Length > 1)
            {
                var        path1 = new PathString(options.Path.Value.TrimEnd('/'));
                PathString path2 = path1.Add(new PathString("/"));
                _isPathValid = ctx => ctx.IsValidPath(path1, path2);
            }
            else
            {
                _isPathValid = ctx => ctx.IsValidPath(options.Path);
            }
        }
Ejemplo n.º 6
0
 public static Task SerializeAsync(
     this IQueryResultSerializer serializer,
     IExecutionResult result,
     Stream outputStream,
     CancellationToken cancellationToken)
 {
     if (result is IReadOnlyQueryResult queryResult)
     {
         return(serializer.SerializeAsync(
                    queryResult,
                    outputStream,
                    cancellationToken));
     }
     else
     {
         return(serializer.SerializeAsync(
                    QueryResult.CreateError(
                        ErrorBuilder.New()
                        .SetMessage("Result type not supported.")
                        .SetCode("RESULT_TYPE_NOT_SUPPORTED")
                        .Build()),
                    outputStream,
                    cancellationToken));
     }
 }
Ejemplo n.º 7
0
 public static Task SerializeAsync(
     this IQueryResultSerializer serializer,
     IExecutionResult result,
     Stream outputStream,
     CancellationToken cancellationToken)
 {
     if (result is IReadOnlyQueryResult queryResult)
     {
         return(serializer.SerializeAsync(
                    queryResult,
                    outputStream,
                    cancellationToken));
     }
     else
     {
         // TODO : resources
         return(serializer.SerializeAsync(
                    QueryResult.CreateError(
                        ErrorBuilder.New()
                        .SetMessage("Result type not supported.")
                        .SetCode(ErrorCodes.Serialization.ResultTypeNotSupported)
                        .Build()),
                    outputStream,
                    cancellationToken));
     }
 }
Ejemplo n.º 8
0
 public PostQueryMiddleware(
     RequestDelegate next,
     IQueryExecutor queryExecutor,
     IQueryResultSerializer resultSerializer,
     QueryMiddlewareOptions options)
     : base(next, queryExecutor, resultSerializer, options)
 {
 }
        private void csvbutton_Click(object sender, EventArgs e)
        {
            var rez = _runner.ExecuteQuery(Query, DbName);

            serializer = new CsvQueryResultSerializer();
            var csv = serializer.Serialize(rez);

            MessageBox.Show(csv);
        }
        private void xmlButton_Click(object sender, EventArgs e)
        {
            var rez = _runner.ExecuteQuery(Query, DbName);

            serializer = new XmlQueryResultSerializer();
            var xml = serializer.Serialize(rez);

            MessageBox.Show(xml);
        }
Ejemplo n.º 11
0
 public HttpGetMiddleware(
     RequestDelegate next,
     IHttpGetMiddlewareOptions options,
     IQueryExecutor queryExecutor,
     IQueryResultSerializer resultSerializer)
     : base(next, options, resultSerializer)
 {
     _queryExecutor = queryExecutor
                      ?? throw new ArgumentNullException(nameof(queryExecutor));
     _resultSerializer = resultSerializer
                         ?? throw new ArgumentNullException(nameof(resultSerializer));
 }
Ejemplo n.º 12
0
        public HttpGetMiddleware(
            RequestDelegate next,
            IHttpGetMiddlewareOptions options,
            INamedQueryExecutorProvider queryExecutorProvider,
            IQueryResultSerializer resultSerializer,
            IErrorHandler errorHandler)
            : base(next, options, resultSerializer, errorHandler)
        {
            _queryExecutorProvider = queryExecutorProvider
                                     ?? throw new ArgumentNullException(nameof(queryExecutorProvider));
            _resultSerializer = resultSerializer
                                ?? throw new ArgumentNullException(nameof(resultSerializer));

            _schemaNameProvider = options.SchemaNameProvider ?? ((c) => new ValueTask <string>(string.Empty));
        }
Ejemplo n.º 13
0
 public PostQueryMiddleware(
     RequestDelegate next,
     IQueryExecutor queryExecutor,
     IQueryResultSerializer resultSerializer,
     IDocumentCache documentCache,
     IDocumentHashProvider documentHashProvider,
     QueryMiddlewareOptions options)
     : base(next, queryExecutor, resultSerializer, options)
 {
     _requestHelper = new RequestHelper(
         documentCache,
         documentHashProvider,
         options.MaxRequestSize,
         options.ParserOptions);
 }
Ejemplo n.º 14
0
 public HttpGetMiddleware(
     RequestDelegate next,
     IHttpGetMiddlewareOptions options,
     OwinContextAccessor owinContextAccessor,
     IQueryExecutor queryExecutor,
     IQueryResultSerializer resultSerializer)
     : base(next,
            options,
            owinContextAccessor,
            queryExecutor.Schema.Services)
 {
     _queryExecutor = queryExecutor
                      ?? throw new ArgumentNullException(nameof(queryExecutor));
     _resultSerializer = resultSerializer
                         ?? throw new ArgumentNullException(nameof(resultSerializer));
 }
Ejemplo n.º 15
0
        public static IApplicationBuilder UseGraphQLHttpPost(
            this IApplicationBuilder applicationBuilder,
            IServiceProvider serviceProvider,
            IHttpPostMiddlewareOptions options)
        {
            if (applicationBuilder == null)
            {
                throw new ArgumentNullException(nameof(applicationBuilder));
            }

            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            IQueryExecutor executor = serviceProvider
                                      .GetRequiredService <IQueryExecutor>();

            IBatchQueryExecutor batchQueryExecutor = serviceProvider
                                                     .GetRequiredService <IBatchQueryExecutor>();

            IQueryResultSerializer resultSerializer = serviceProvider
                                                      .GetRequiredService <IQueryResultSerializer>();

            IResponseStreamSerializer streamSerializer = serviceProvider
                                                         .GetRequiredService <IResponseStreamSerializer>();

            IDocumentCache documentCache = serviceProvider
                                           .GetRequiredService <IDocumentCache>();

            IDocumentHashProvider documentHashProvider = serviceProvider
                                                         .GetRequiredService <IDocumentHashProvider>();

            OwinContextAccessor contextAccessor =
                serviceProvider.GetService <OwinContextAccessor>();

            return(applicationBuilder.Use <HttpPostMiddleware>(
                       options, contextAccessor,
                       executor, batchQueryExecutor,
                       resultSerializer, streamSerializer,
                       documentCache, documentHashProvider));
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Instantiates the base query middleware with an optional pointer to
        /// the next component.
        /// </summary>
        /// <param name="next">
        /// An optional pointer to the next component.
        /// </param>
        /// <param name="queryExecuterResolver">
        /// A required query executor resolver.
        /// </param>
        /// <param name="options">
        /// </param>
        protected QueryMiddlewareBase(
            RequestDelegate next,
            IQueryExecuter queryExecuter,
            IQueryResultSerializer resultSerializer,
            QueryMiddlewareOptions options)
#if ASPNETCLASSIC
            : base(next)
#endif
        {
#if !ASPNETCLASSIC
            Next = next;
#endif
            _queryExecuter = queryExecuter ??
                             throw new ArgumentNullException(nameof(queryExecuter));
            _resultSerializer = resultSerializer
                                ?? throw new ArgumentNullException(nameof(resultSerializer));
            Options = options ??
                      throw new ArgumentNullException(nameof(options));
            Services = Executer.Schema.Services;
        }
Ejemplo n.º 17
0
        public static IApplicationBuilder UseGraphQL(
            this IApplicationBuilder applicationBuilder,
            IServiceProvider serviceProvider,
            QueryMiddlewareOptions options)
        {
            if (applicationBuilder == null)
            {
                throw new ArgumentNullException(nameof(applicationBuilder));
            }

            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            IQueryExecutor executor = serviceProvider
                                      .GetService <IQueryExecutor>();

            IQueryResultSerializer serializer = serviceProvider
                                                .GetService <IQueryResultSerializer>()
                                                ?? new JsonQueryResultSerializer();

            IDocumentCache cache = serviceProvider
                                   .GetRequiredService <IDocumentCache>();

            IDocumentHashProvider hashProvider = serviceProvider
                                                 .GetRequiredService <IDocumentHashProvider>();

            return(applicationBuilder
                   .Use <PostQueryMiddleware>(executor, serializer, cache, hashProvider, options)
                   .Use <GetQueryMiddleware>(executor, serializer, options)
                   .Use <SchemaMiddleware>(executor, options));
        }
Ejemplo n.º 18
0
 public HttpHelper(HttpContext context, IQueryResultSerializer serializer)
 {
     Context    = context;
     Serializer = serializer;
 }