From ee426c8724b499ea2d81f1a7459e00d304e539bb Mon Sep 17 00:00:00 2001 From: Magnus Ahlberg Date: Fri, 2 Feb 2024 09:09:34 +0100 Subject: [PATCH] Add CancellationToken support in async methods Async methods in the GraphCursorPager and GraphCursorQueryExecute classes have been updated to support CancellationToken. --- src/Linq2GraphQL.Client/GraphCursorPager.cs | 12 ++++++------ src/Linq2GraphQL.Client/GraphQueryExecute.cs | 9 ++++----- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/Linq2GraphQL.Client/GraphCursorPager.cs b/src/Linq2GraphQL.Client/GraphCursorPager.cs index 0545541..ec62220 100644 --- a/src/Linq2GraphQL.Client/GraphCursorPager.cs +++ b/src/Linq2GraphQL.Client/GraphCursorPager.cs @@ -21,23 +21,23 @@ public GraphCursorPager(GraphCursorQueryExecute graphCursorQueryExec return this; } - private async Task ExecutePagerAsync() + private async Task ExecutePagerAsync(CancellationToken cancellationToken = default) { - var baseType = await query.ExecuteBaseAsync(); + var baseType = await query.ExecuteBaseAsync(cancellationToken); return query.ConvertResult(baseType); } - public async Task NextPageAsync() + public async Task NextPageAsync(CancellationToken cancellationToken = default) { query.QueryNode.SetArgumentValue("after", query.BaseResult?.PageInfo?.EndCursor); query.QueryNode.SetArgumentValue("before", null); - return await ExecutePagerAsync(); + return await ExecutePagerAsync(cancellationToken); } - public async Task PreviousPageAsync() + public async Task PreviousPageAsync(CancellationToken cancellationToken = default) { query.QueryNode.SetArgumentValue("after", null); query.QueryNode.SetArgumentValue("before", query.BaseResult?.PageInfo?.EndCursor); - return await ExecutePagerAsync(); + return await ExecutePagerAsync(cancellationToken); } } diff --git a/src/Linq2GraphQL.Client/GraphQueryExecute.cs b/src/Linq2GraphQL.Client/GraphQueryExecute.cs index 69b1329..66e8f0a 100644 --- a/src/Linq2GraphQL.Client/GraphQueryExecute.cs +++ b/src/Linq2GraphQL.Client/GraphQueryExecute.cs @@ -3,11 +3,10 @@ namespace Linq2GraphQL.Client; - public class GraphCursorQueryExecute : GraphQueryExecute where T : ICursorPaging { - public GraphCursorQueryExecute(GraphClient client, OperationType operationType, QueryNode queryNode, Expression> selector) : base(client, operationType, queryNode, selector) - { } + public GraphCursorQueryExecute(GraphClient client, OperationType operationType, QueryNode queryNode, + Expression> selector) : base(client, operationType, queryNode, selector) { } public GraphCursorPager AsPager() { @@ -24,7 +23,8 @@ public class GraphQueryExecute : GraphBaseExecute public async Task ExecuteBaseAsync(CancellationToken cancellationToken = default) { - BaseResult = await queryExecutor.ExecuteRequestAsync(QueryNode.Name, await GetRequestAsync(), cancellationToken); + BaseResult = + await queryExecutor.ExecuteRequestAsync(QueryNode.Name, await GetRequestAsync(), cancellationToken); return BaseResult; } @@ -32,5 +32,4 @@ public async Task ExecuteAsync(CancellationToken cancellationToken = de { return ConvertResult(await ExecuteBaseAsync(cancellationToken)); } - } \ No newline at end of file