From 2508a8b986c4a1d2a3f55af51e714381c17de740 Mon Sep 17 00:00:00 2001 From: TekH Date: Tue, 24 Mar 2026 13:21:05 +0100 Subject: [PATCH] Add CancellationToken to ExecuteDynamicSqlAsync method The ExecuteDynamicSqlAsync extension for IRecDbContext now accepts an optional CancellationToken, which is passed to all async database operations to support cancellation. Also added a TODO to move this method to Common.Infrastructure in the future. --- src/ReC.Application/Common/Interfaces/IRecDbContext.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ReC.Application/Common/Interfaces/IRecDbContext.cs b/src/ReC.Application/Common/Interfaces/IRecDbContext.cs index 44585f7..af2220d 100644 --- a/src/ReC.Application/Common/Interfaces/IRecDbContext.cs +++ b/src/ReC.Application/Common/Interfaces/IRecDbContext.cs @@ -29,7 +29,8 @@ public interface IRecDbContext public static class RecDbContextSaveExtensions { - public static async Task ExecuteDynamicSqlAsync(this IRecDbContext context, string sql) + //TODO: Once it is finalized, move it to Common.Infrastructure + public static async Task ExecuteDynamicSqlAsync(this IRecDbContext context, string sql, CancellationToken cancel = default) { var result = new List>(); @@ -37,10 +38,10 @@ public static class RecDbContextSaveExtensions command.CommandText = sql; - await context.Database.OpenConnectionAsync(); + await context.Database.OpenConnectionAsync(cancel); - using var reader = await command.ExecuteReaderAsync(); - while (await reader.ReadAsync()) + using var reader = await command.ExecuteReaderAsync(cancel); + while (await reader.ReadAsync(cancel)) { var row = new Dictionary();