From 6681e56afc9dcf75b97767a3d8ce07add5b1c69f Mon Sep 17 00:00:00 2001 From: TekH Date: Thu, 16 Apr 2026 17:14:29 +0200 Subject: [PATCH] Refactor entity selection to use EntityType enum Replaced string-based entity identifiers in CRUD procedure and command classes with a strongly-typed EntityType enum. Updated all relevant handlers and records to use the new enum property, improving type safety and maintainability. Added necessary using directives and updated documentation comments to reflect these changes. --- .../Procedures/DeleteProcedure/DeleteObjectProcedure.cs | 4 ++-- .../Procedures/InsertProcedure/InsertObjectProcedure.cs | 4 ++-- .../Procedures/UpdateProcedure/UpdateObjectProcedure.cs | 4 ++-- .../EndpointAuth/Commands/DeleteEndpointAuthCommand.cs | 3 ++- .../EndpointAuth/Commands/InsertEndpointAuthCommand.cs | 5 +++-- .../EndpointAuth/Commands/UpdateEndpointAuthCommand.cs | 3 ++- .../EndpointParams/Commands/DeleteEndpointParamsCommand.cs | 3 ++- .../EndpointParams/Commands/InsertEndpointParamsCommand.cs | 5 +++-- .../EndpointParams/Commands/UpdateEndpointParamsCommand.cs | 3 ++- .../Endpoints/Commands/DeleteEndpointCommand.cs | 3 ++- .../Endpoints/Commands/InsertEndpointCommand.cs | 5 +++-- .../Endpoints/Commands/UpdateEndpointCommand.cs | 3 ++- src/ReC.Application/Profile/Commands/DeleteProfileCommand.cs | 3 ++- src/ReC.Application/Profile/Commands/InsertProfileCommand.cs | 5 +++-- src/ReC.Application/Profile/Commands/UpdateProfileCommand.cs | 3 ++- .../RecActions/Commands/DeleteActionCommand.cs | 3 ++- .../RecActions/Commands/InsertActionCommand.cs | 5 +++-- .../RecActions/Commands/UpdateActionCommand.cs | 3 ++- src/ReC.Application/Results/Commands/DeleteResultCommand.cs | 3 ++- src/ReC.Application/Results/Commands/InsertResultCommand.cs | 5 +++-- src/ReC.Application/Results/Commands/UpdateResultCommand.cs | 3 ++- 21 files changed, 48 insertions(+), 30 deletions(-) diff --git a/src/ReC.Application/Common/Procedures/DeleteProcedure/DeleteObjectProcedure.cs b/src/ReC.Application/Common/Procedures/DeleteProcedure/DeleteObjectProcedure.cs index 3083a51..4b49d52 100644 --- a/src/ReC.Application/Common/Procedures/DeleteProcedure/DeleteObjectProcedure.cs +++ b/src/ReC.Application/Common/Procedures/DeleteProcedure/DeleteObjectProcedure.cs @@ -11,9 +11,9 @@ namespace ReC.Application.Common.Procedures.DeleteProcedure; public record DeleteObjectProcedure : IRequest { /// - /// Target entity: ACTION, ENDPOINT, ENDPOINT_AUTH, ENDPOINT_PARAMS, PROFILE, RESULT + /// Target entity for the delete operation. /// - public string Entity { get; set; } = null!; + public required EntityType Entity { get; set; } /// /// Start GUID/ID (inclusive) diff --git a/src/ReC.Application/Common/Procedures/InsertProcedure/InsertObjectProcedure.cs b/src/ReC.Application/Common/Procedures/InsertProcedure/InsertObjectProcedure.cs index ee7ad9f..af8ba15 100644 --- a/src/ReC.Application/Common/Procedures/InsertProcedure/InsertObjectProcedure.cs +++ b/src/ReC.Application/Common/Procedures/InsertProcedure/InsertObjectProcedure.cs @@ -18,9 +18,9 @@ namespace ReC.Application.Common.Procedures.InsertProcedure; public record InsertObjectProcedure : IRequest { /// - /// Target entity: ACTION, ENDPOINT, ENDPOINT_AUTH, ENDPOINT_PARAMS, PROFILE, RESULT + /// Target entity for the insert operation. /// - public string Entity { get; set; } = null!; + public required EntityType Entity { get; set; } //TODO: update to set in authentication middleware or similar, and remove from procedure properties internal string? AddedWho { get; private set; } = "ReC.API"; diff --git a/src/ReC.Application/Common/Procedures/UpdateProcedure/UpdateObjectProcedure.cs b/src/ReC.Application/Common/Procedures/UpdateProcedure/UpdateObjectProcedure.cs index ff704e0..49bcd34 100644 --- a/src/ReC.Application/Common/Procedures/UpdateProcedure/UpdateObjectProcedure.cs +++ b/src/ReC.Application/Common/Procedures/UpdateProcedure/UpdateObjectProcedure.cs @@ -13,9 +13,9 @@ namespace ReC.Application.Common.Procedures.UpdateProcedure; public record UpdateObjectProcedure : IRequest { /// - /// Target entity: ACTION, ENDPOINT, ENDPOINT_AUTH, ENDPOINT_PARAMS, PROFILE, RESULT + /// Target entity for the update operation. /// - public string Entity { get; set; } = null!; + public required EntityType Entity { get; set; } /// /// Target GUID to update (required) diff --git a/src/ReC.Application/EndpointAuth/Commands/DeleteEndpointAuthCommand.cs b/src/ReC.Application/EndpointAuth/Commands/DeleteEndpointAuthCommand.cs index 54a09ca..9774c3f 100644 --- a/src/ReC.Application/EndpointAuth/Commands/DeleteEndpointAuthCommand.cs +++ b/src/ReC.Application/EndpointAuth/Commands/DeleteEndpointAuthCommand.cs @@ -1,5 +1,6 @@ using MediatR; using ReC.Application.Common.Procedures.DeleteProcedure; +using ReC.Application.Common.Procedures; namespace ReC.Application.EndpointAuth.Commands; @@ -27,7 +28,7 @@ public class DeleteEndpointAuthProcedureHandler(ISender sender) : IRequestHandle { return await sender.Send(new DeleteObjectProcedure { - Entity = "ENDPOINT_AUTH", + Entity = EntityType.EndpointAuth, Start = request.Start, End = request.End, Force = request.Force diff --git a/src/ReC.Application/EndpointAuth/Commands/InsertEndpointAuthCommand.cs b/src/ReC.Application/EndpointAuth/Commands/InsertEndpointAuthCommand.cs index 8f4a2b0..94920e8 100644 --- a/src/ReC.Application/EndpointAuth/Commands/InsertEndpointAuthCommand.cs +++ b/src/ReC.Application/EndpointAuth/Commands/InsertEndpointAuthCommand.cs @@ -1,5 +1,6 @@ -using MediatR; +using MediatR; using ReC.Application.Common.Procedures.InsertProcedure; +using ReC.Application.Common.Procedures; namespace ReC.Application.EndpointAuth.Commands; @@ -24,7 +25,7 @@ public class InsertEndpointAuthProcedureHandler(ISender sender) : IRequestHandle { return await sender.Send(new InsertObjectProcedure { - Entity = "ENDPOINT_AUTH", + Entity = EntityType.EndpointAuth, EndpointAuth = request }, cancel); } diff --git a/src/ReC.Application/EndpointAuth/Commands/UpdateEndpointAuthCommand.cs b/src/ReC.Application/EndpointAuth/Commands/UpdateEndpointAuthCommand.cs index 7c68d23..56f4c26 100644 --- a/src/ReC.Application/EndpointAuth/Commands/UpdateEndpointAuthCommand.cs +++ b/src/ReC.Application/EndpointAuth/Commands/UpdateEndpointAuthCommand.cs @@ -1,6 +1,7 @@ using MediatR; using ReC.Application.Common.Procedures.UpdateProcedure; using ReC.Application.Common.Procedures.UpdateProcedure.Dto; +using ReC.Application.Common.Procedures; namespace ReC.Application.EndpointAuth.Commands; @@ -17,7 +18,7 @@ public class UpdateEndpointAuthProcedureHandler(ISender sender) : IRequestHandle { return await sender.Send(new UpdateObjectProcedure { - Entity = "ENDPOINT_AUTH", + Entity = EntityType.EndpointAuth, Id = request.Id, EndpointAuth = request.Data }, cancel); diff --git a/src/ReC.Application/EndpointParams/Commands/DeleteEndpointParamsCommand.cs b/src/ReC.Application/EndpointParams/Commands/DeleteEndpointParamsCommand.cs index eea8d52..c2ac04d 100644 --- a/src/ReC.Application/EndpointParams/Commands/DeleteEndpointParamsCommand.cs +++ b/src/ReC.Application/EndpointParams/Commands/DeleteEndpointParamsCommand.cs @@ -1,5 +1,6 @@ using MediatR; using ReC.Application.Common.Procedures.DeleteProcedure; +using ReC.Application.Common.Procedures; namespace ReC.Application.EndpointParams.Commands; @@ -27,7 +28,7 @@ public class DeleteEndpointParamsProcedureHandler(ISender sender) : IRequestHand { return await sender.Send(new DeleteObjectProcedure { - Entity = "ENDPOINT_PARAMS", + Entity = EntityType.EndpointParams, Start = request.Start, End = request.End, Force = request.Force diff --git a/src/ReC.Application/EndpointParams/Commands/InsertEndpointParamsCommand.cs b/src/ReC.Application/EndpointParams/Commands/InsertEndpointParamsCommand.cs index 40e0fbb..05ec2e9 100644 --- a/src/ReC.Application/EndpointParams/Commands/InsertEndpointParamsCommand.cs +++ b/src/ReC.Application/EndpointParams/Commands/InsertEndpointParamsCommand.cs @@ -1,5 +1,6 @@ -using MediatR; +using MediatR; using ReC.Application.Common.Procedures.InsertProcedure; +using ReC.Application.Common.Procedures; namespace ReC.Application.EndpointParams.Commands; @@ -19,7 +20,7 @@ public class InsertEndpointParamsProcedureHandler(ISender sender) : IRequestHand { return await sender.Send(new InsertObjectProcedure { - Entity = "ENDPOINT_PARAMS", + Entity = EntityType.EndpointParams, EndpointParams = request }, cancel); } diff --git a/src/ReC.Application/EndpointParams/Commands/UpdateEndpointParamsCommand.cs b/src/ReC.Application/EndpointParams/Commands/UpdateEndpointParamsCommand.cs index 446e71e..21462df 100644 --- a/src/ReC.Application/EndpointParams/Commands/UpdateEndpointParamsCommand.cs +++ b/src/ReC.Application/EndpointParams/Commands/UpdateEndpointParamsCommand.cs @@ -1,6 +1,7 @@ using MediatR; using ReC.Application.Common.Procedures.UpdateProcedure; using ReC.Application.Common.Procedures.UpdateProcedure.Dto; +using ReC.Application.Common.Procedures; namespace ReC.Application.EndpointParams.Commands; @@ -17,7 +18,7 @@ public class UpdateEndpointParamsProcedureHandler(ISender sender) : IRequestHand { return await sender.Send(new UpdateObjectProcedure { - Entity = "ENDPOINT_PARAMS", + Entity = EntityType.EndpointParams, Id = request.Id, EndpointParams = request.Data }, cancel); diff --git a/src/ReC.Application/Endpoints/Commands/DeleteEndpointCommand.cs b/src/ReC.Application/Endpoints/Commands/DeleteEndpointCommand.cs index 1a9469e..d7beab8 100644 --- a/src/ReC.Application/Endpoints/Commands/DeleteEndpointCommand.cs +++ b/src/ReC.Application/Endpoints/Commands/DeleteEndpointCommand.cs @@ -1,5 +1,6 @@ using MediatR; using ReC.Application.Common.Procedures.DeleteProcedure; +using ReC.Application.Common.Procedures; namespace ReC.Application.Endpoints.Commands; @@ -27,7 +28,7 @@ public class DeleteEndpointProcedureHandler(ISender sender) : IRequestHandler