public async Task <string> GetWithStackedDataLoader( string key, [DataLoader("fooBar")] TestDataLoader testDataLoader, CancellationToken cancellationToken) { var s = await testDataLoader.LoadAsync(key + "a", cancellationToken); s += await testDataLoader.LoadAsync(key + "b", cancellationToken); s += await testDataLoader.LoadAsync(key + "c", cancellationToken); s += await testDataLoader.LoadAsync(key + "d", cancellationToken); await Task.Delay(10, cancellationToken); s += await testDataLoader.LoadAsync(key + "e", cancellationToken); s += await testDataLoader.LoadAsync(key + "f", cancellationToken); s += await testDataLoader.LoadAsync(key + "g", cancellationToken); await Task.Delay(10, cancellationToken); s += await testDataLoader.LoadAsync(key + "h", cancellationToken); return(s); }
public Task <string> GetWithDataLoader( string key, FieldNode fieldSelection, [DataLoader] TestDataLoader testDataLoader, CancellationToken cancellationToken) { return(testDataLoader.LoadAsync(key, cancellationToken)); }
public async Task ClassDataLoader() { // arrange IRequestExecutor executor = await CreateExecutorAsync(c => c .AddQueryType <Query>() .AddDataLoader <ITestDataLoader, TestDataLoader>() .ModifyRequestOptions(o => o.IncludeExceptionDetails = true) .UseRequest(next => async context => { await next(context); TestDataLoader dataLoader = context.Services .GetRequiredService <IDataLoaderRegistry>() .GetOrRegister <TestDataLoader>(() => throw new Exception()); context.Result = QueryResultBuilder .FromResult(((IQueryResult)context.Result !)) .AddExtension("loads", dataLoader.Loads) .Create(); }) .UseDefaultPipeline()); // act var results = new List <IExecutionResult> { await executor.ExecuteAsync( QueryRequestBuilder.New() .SetQuery( @"{ a: withDataLoader(key: ""a"") b: withDataLoader(key: ""b"") bar { c: withDataLoader(key: ""c"") } }") .Create()), await executor.ExecuteAsync( QueryRequestBuilder.New() .SetQuery( @"{ a: withDataLoader(key: ""a"") }") .Create()), await executor.ExecuteAsync( QueryRequestBuilder.New() .SetQuery( @"{ c: withDataLoader(key: ""c"") }") .Create()) }; // assert results.MatchSnapshot(); }
public async Task <string> GetWithStackedDataLoader( string key, FieldNode fieldSelection, [DataLoader("fooBar")] TestDataLoader testDataLoader, CancellationToken cancellationToken) { string s = await testDataLoader.LoadAsync(key + "a", cancellationToken); s += await testDataLoader.LoadAsync(key + "b", cancellationToken); s += await testDataLoader.LoadAsync(key + "c", cancellationToken); s += await testDataLoader.LoadAsync(key + "d", cancellationToken); s += await testDataLoader.LoadAsync(key + "e", cancellationToken); return(s); }