From e782eab62a7473015aae4e2af7001235a3802fcb Mon Sep 17 00:00:00 2001 From: TekH Date: Thu, 22 Jan 2026 09:21:39 +0100 Subject: [PATCH] Refactor handlers to use IOptionsMonitor for SQL options Refactored Delete, Insert, and Update procedure handlers to inject IOptionsMonitor instead of SqlExceptionOptions, enabling dynamic configuration updates. Updated all references to use CurrentValue. Added necessary using directives and cleaned up redundant usings in InsertObjectProcedure.cs. --- .../Procedures/DeleteProcedure/DeleteObjectProcedure.cs | 5 +++-- .../Procedures/InsertProcedure/InsertObjectProcedure.cs | 9 +++++---- .../Procedures/UpdateProcedure/UpdateObjectProcedure.cs | 5 +++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/ReC.Application/Common/Procedures/DeleteProcedure/DeleteObjectProcedure.cs b/src/ReC.Application/Common/Procedures/DeleteProcedure/DeleteObjectProcedure.cs index 861022e..6033097 100644 --- a/src/ReC.Application/Common/Procedures/DeleteProcedure/DeleteObjectProcedure.cs +++ b/src/ReC.Application/Common/Procedures/DeleteProcedure/DeleteObjectProcedure.cs @@ -2,6 +2,7 @@ using DigitalData.Core.Abstraction.Application.Repository; using DigitalData.Core.Exceptions; using MediatR; using Microsoft.Data.SqlClient; +using Microsoft.Extensions.Options; using ReC.Application.Common.Exceptions; using ReC.Application.Common.Options; @@ -49,7 +50,7 @@ public static class DeleteObjectProcedureExtensions } } -public class DeleteObjectProcedureHandler(IRepository repo, SqlExceptionOptions sqlExceptionOptions) : IRequestHandler +public class DeleteObjectProcedureHandler(IRepository repo, IOptionsMonitor sqlExOpt) : IRequestHandler { public async Task Handle(DeleteObjectProcedure request, CancellationToken cancel) { @@ -81,7 +82,7 @@ public class DeleteObjectProcedureHandler(IRepository repo, SqlExceptionOptions } catch (SqlException ex) { - if (sqlExceptionOptions.SqlExceptionNumber.Contains(ex.Number)) + if (sqlExOpt.CurrentValue.SqlExceptionNumber.Contains(ex.Number)) throw new BadRequestException(ex.Message, ex); else throw; diff --git a/src/ReC.Application/Common/Procedures/InsertProcedure/InsertObjectProcedure.cs b/src/ReC.Application/Common/Procedures/InsertProcedure/InsertObjectProcedure.cs index 7e7bc23..022e0dd 100644 --- a/src/ReC.Application/Common/Procedures/InsertProcedure/InsertObjectProcedure.cs +++ b/src/ReC.Application/Common/Procedures/InsertProcedure/InsertObjectProcedure.cs @@ -2,13 +2,14 @@ using DigitalData.Core.Exceptions; using MediatR; using Microsoft.Data.SqlClient; +using Microsoft.Extensions.Options; using ReC.Application.Common.Exceptions; +using ReC.Application.Common.Options; using ReC.Application.EndpointAuth.Commands; using ReC.Application.EndpointParams.Commands; using ReC.Application.Endpoints.Commands; -using ReC.Application.Results.Commands; using ReC.Application.Profile.Commands; -using ReC.Application.Common.Options; +using ReC.Application.Results.Commands; namespace ReC.Application.Common.Procedures.InsertProcedure; @@ -43,7 +44,7 @@ public static class InsertObjectProcedureExtensions } } -public class InsertObjectProcedureHandler(IRepository repo, SqlExceptionOptions sqlExceptionOptions) : IRequestHandler +public class InsertObjectProcedureHandler(IRepository repo, IOptionsMonitor sqlExOpt) : IRequestHandler { public async Task Handle(InsertObjectProcedure request, CancellationToken cancel) { @@ -129,7 +130,7 @@ public class InsertObjectProcedureHandler(IRepository repo, SqlExceptionOptions } catch (SqlException ex) { - if (sqlExceptionOptions.SqlExceptionNumber.Contains(ex.Number)) + if (sqlExOpt.CurrentValue.SqlExceptionNumber.Contains(ex.Number)) throw new BadRequestException(ex.Message, ex); else throw; diff --git a/src/ReC.Application/Common/Procedures/UpdateProcedure/UpdateObjectProcedure.cs b/src/ReC.Application/Common/Procedures/UpdateProcedure/UpdateObjectProcedure.cs index 99fe9ce..cf64741 100644 --- a/src/ReC.Application/Common/Procedures/UpdateProcedure/UpdateObjectProcedure.cs +++ b/src/ReC.Application/Common/Procedures/UpdateProcedure/UpdateObjectProcedure.cs @@ -2,6 +2,7 @@ using DigitalData.Core.Abstraction.Application.Repository; using DigitalData.Core.Exceptions; using MediatR; using Microsoft.Data.SqlClient; +using Microsoft.Extensions.Options; using ReC.Application.Common.Exceptions; using ReC.Application.Common.Options; using ReC.Application.EndpointAuth.Commands; @@ -49,7 +50,7 @@ public static class UpdateObjectProcedureExtensions } } -public class UpdateObjectProcedureHandler(IRepository repo, SqlExceptionOptions sqlExceptionOptions) : IRequestHandler +public class UpdateObjectProcedureHandler(IRepository repo, IOptionsMonitor sqlExOpt) : IRequestHandler { public async Task Handle(UpdateObjectProcedure request, CancellationToken cancel) { @@ -141,7 +142,7 @@ public class UpdateObjectProcedureHandler(IRepository repo, SqlExceptionOptions } catch (SqlException ex) { - if (sqlExceptionOptions.SqlExceptionNumber.Contains(ex.Number)) + if (sqlExOpt.CurrentValue.SqlExceptionNumber.Contains(ex.Number)) throw new BadRequestException(ex.Message, ex); else throw;