コード例 #1
0
        protected static async Task <IReadOnlyQueryResult> ExecuteQueryAsync(
            IExecutionContext executionContext,
            BatchOperationHandler batchOperationHandler,
            CancellationToken cancellationToken)
        {
            InitialBatch initialBatch = CreateInitialBatch(executionContext);

            try
            {
                await ExecuteResolversAsync(
                    executionContext,
                    initialBatch.Batch,
                    batchOperationHandler,
                    cancellationToken)
                .ConfigureAwait(false);

                FieldData data = EnsureRootValueNonNullState(
                    initialBatch.Data,
                    initialBatch.Batch);

                if (data is { })
                {
                    executionContext.Result.SetData(initialBatch.Data);
                }

                return(executionContext.Result.Create());
            }
コード例 #2
0
        private static async Task <IExecutionResult> ExecuteMutationAsync(
            IExecutionContext executionContext,
            CancellationToken cancellationToken)
        {
            InitialBatch initialBatch = CreateInitialBatch(executionContext);

            BatchOperationHandler batchOperationHandler =
                CreateBatchOperationHandler(executionContext);

            try
            {
                await ExecuteResolverBatchSeriallyAsync(
                    executionContext,
                    initialBatch.Batch,
                    batchOperationHandler,
                    cancellationToken)
                .ConfigureAwait(false);

                FieldData data = EnsureRootValueNonNullState(
                    initialBatch.Data,
                    initialBatch.Batch);

                if (data is { })
                {
                    executionContext.Result.SetData(data);
                }

                return(executionContext.Result.Create());
            }