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.
This commit is contained in:
2026-04-16 17:14:29 +02:00
parent d61f5ce885
commit 6681e56afc
21 changed files with 48 additions and 30 deletions

View File

@@ -11,9 +11,9 @@ namespace ReC.Application.Common.Procedures.DeleteProcedure;
public record DeleteObjectProcedure : IRequest<int> public record DeleteObjectProcedure : IRequest<int>
{ {
/// <summary> /// <summary>
/// Target entity: ACTION, ENDPOINT, ENDPOINT_AUTH, ENDPOINT_PARAMS, PROFILE, RESULT /// Target entity for the delete operation.
/// </summary> /// </summary>
public string Entity { get; set; } = null!; public required EntityType Entity { get; set; }
/// <summary> /// <summary>
/// Start GUID/ID (inclusive) /// Start GUID/ID (inclusive)

View File

@@ -18,9 +18,9 @@ namespace ReC.Application.Common.Procedures.InsertProcedure;
public record InsertObjectProcedure : IRequest<long> public record InsertObjectProcedure : IRequest<long>
{ {
/// <summary> /// <summary>
/// Target entity: ACTION, ENDPOINT, ENDPOINT_AUTH, ENDPOINT_PARAMS, PROFILE, RESULT /// Target entity for the insert operation.
/// </summary> /// </summary>
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 //TODO: update to set in authentication middleware or similar, and remove from procedure properties
internal string? AddedWho { get; private set; } = "ReC.API"; internal string? AddedWho { get; private set; } = "ReC.API";

View File

@@ -13,9 +13,9 @@ namespace ReC.Application.Common.Procedures.UpdateProcedure;
public record UpdateObjectProcedure : IRequest<int> public record UpdateObjectProcedure : IRequest<int>
{ {
/// <summary> /// <summary>
/// Target entity: ACTION, ENDPOINT, ENDPOINT_AUTH, ENDPOINT_PARAMS, PROFILE, RESULT /// Target entity for the update operation.
/// </summary> /// </summary>
public string Entity { get; set; } = null!; public required EntityType Entity { get; set; }
/// <summary> /// <summary>
/// Target GUID to update (required) /// Target GUID to update (required)

View File

@@ -1,5 +1,6 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.DeleteProcedure; using ReC.Application.Common.Procedures.DeleteProcedure;
using ReC.Application.Common.Procedures;
namespace ReC.Application.EndpointAuth.Commands; namespace ReC.Application.EndpointAuth.Commands;
@@ -27,7 +28,7 @@ public class DeleteEndpointAuthProcedureHandler(ISender sender) : IRequestHandle
{ {
return await sender.Send(new DeleteObjectProcedure return await sender.Send(new DeleteObjectProcedure
{ {
Entity = "ENDPOINT_AUTH", Entity = EntityType.EndpointAuth,
Start = request.Start, Start = request.Start,
End = request.End, End = request.End,
Force = request.Force Force = request.Force

View File

@@ -1,5 +1,6 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.InsertProcedure; using ReC.Application.Common.Procedures.InsertProcedure;
using ReC.Application.Common.Procedures;
namespace ReC.Application.EndpointAuth.Commands; namespace ReC.Application.EndpointAuth.Commands;
@@ -24,7 +25,7 @@ public class InsertEndpointAuthProcedureHandler(ISender sender) : IRequestHandle
{ {
return await sender.Send(new InsertObjectProcedure return await sender.Send(new InsertObjectProcedure
{ {
Entity = "ENDPOINT_AUTH", Entity = EntityType.EndpointAuth,
EndpointAuth = request EndpointAuth = request
}, cancel); }, cancel);
} }

View File

@@ -1,6 +1,7 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.UpdateProcedure; using ReC.Application.Common.Procedures.UpdateProcedure;
using ReC.Application.Common.Procedures.UpdateProcedure.Dto; using ReC.Application.Common.Procedures.UpdateProcedure.Dto;
using ReC.Application.Common.Procedures;
namespace ReC.Application.EndpointAuth.Commands; namespace ReC.Application.EndpointAuth.Commands;
@@ -17,7 +18,7 @@ public class UpdateEndpointAuthProcedureHandler(ISender sender) : IRequestHandle
{ {
return await sender.Send(new UpdateObjectProcedure return await sender.Send(new UpdateObjectProcedure
{ {
Entity = "ENDPOINT_AUTH", Entity = EntityType.EndpointAuth,
Id = request.Id, Id = request.Id,
EndpointAuth = request.Data EndpointAuth = request.Data
}, cancel); }, cancel);

View File

@@ -1,5 +1,6 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.DeleteProcedure; using ReC.Application.Common.Procedures.DeleteProcedure;
using ReC.Application.Common.Procedures;
namespace ReC.Application.EndpointParams.Commands; namespace ReC.Application.EndpointParams.Commands;
@@ -27,7 +28,7 @@ public class DeleteEndpointParamsProcedureHandler(ISender sender) : IRequestHand
{ {
return await sender.Send(new DeleteObjectProcedure return await sender.Send(new DeleteObjectProcedure
{ {
Entity = "ENDPOINT_PARAMS", Entity = EntityType.EndpointParams,
Start = request.Start, Start = request.Start,
End = request.End, End = request.End,
Force = request.Force Force = request.Force

View File

@@ -1,5 +1,6 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.InsertProcedure; using ReC.Application.Common.Procedures.InsertProcedure;
using ReC.Application.Common.Procedures;
namespace ReC.Application.EndpointParams.Commands; namespace ReC.Application.EndpointParams.Commands;
@@ -19,7 +20,7 @@ public class InsertEndpointParamsProcedureHandler(ISender sender) : IRequestHand
{ {
return await sender.Send(new InsertObjectProcedure return await sender.Send(new InsertObjectProcedure
{ {
Entity = "ENDPOINT_PARAMS", Entity = EntityType.EndpointParams,
EndpointParams = request EndpointParams = request
}, cancel); }, cancel);
} }

View File

@@ -1,6 +1,7 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.UpdateProcedure; using ReC.Application.Common.Procedures.UpdateProcedure;
using ReC.Application.Common.Procedures.UpdateProcedure.Dto; using ReC.Application.Common.Procedures.UpdateProcedure.Dto;
using ReC.Application.Common.Procedures;
namespace ReC.Application.EndpointParams.Commands; namespace ReC.Application.EndpointParams.Commands;
@@ -17,7 +18,7 @@ public class UpdateEndpointParamsProcedureHandler(ISender sender) : IRequestHand
{ {
return await sender.Send(new UpdateObjectProcedure return await sender.Send(new UpdateObjectProcedure
{ {
Entity = "ENDPOINT_PARAMS", Entity = EntityType.EndpointParams,
Id = request.Id, Id = request.Id,
EndpointParams = request.Data EndpointParams = request.Data
}, cancel); }, cancel);

View File

@@ -1,5 +1,6 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.DeleteProcedure; using ReC.Application.Common.Procedures.DeleteProcedure;
using ReC.Application.Common.Procedures;
namespace ReC.Application.Endpoints.Commands; namespace ReC.Application.Endpoints.Commands;
@@ -27,7 +28,7 @@ public class DeleteEndpointProcedureHandler(ISender sender) : IRequestHandler<De
{ {
return await sender.Send(new DeleteObjectProcedure return await sender.Send(new DeleteObjectProcedure
{ {
Entity = "ENDPOINT", Entity = EntityType.Endpoint,
Start = request.Start, Start = request.Start,
End = request.End, End = request.End,
Force = request.Force Force = request.Force

View File

@@ -1,5 +1,6 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.InsertProcedure; using ReC.Application.Common.Procedures.InsertProcedure;
using ReC.Application.Common.Procedures;
namespace ReC.Application.Endpoints.Commands; namespace ReC.Application.Endpoints.Commands;
@@ -16,7 +17,7 @@ public class InsertEndpointProcedureHandler(ISender sender) : IRequestHandler<In
{ {
return await sender.Send(new InsertObjectProcedure return await sender.Send(new InsertObjectProcedure
{ {
Entity = "ENDPOINT", Entity = EntityType.Endpoint,
Endpoint = request Endpoint = request
}, cancel); }, cancel);
} }

View File

@@ -1,6 +1,7 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.UpdateProcedure; using ReC.Application.Common.Procedures.UpdateProcedure;
using ReC.Application.Common.Procedures.UpdateProcedure.Dto; using ReC.Application.Common.Procedures.UpdateProcedure.Dto;
using ReC.Application.Common.Procedures;
namespace ReC.Application.Endpoints.Commands; namespace ReC.Application.Endpoints.Commands;
@@ -17,7 +18,7 @@ public class UpdateEndpointProcedureHandler(ISender sender) : IRequestHandler<Up
{ {
return await sender.Send(new UpdateObjectProcedure return await sender.Send(new UpdateObjectProcedure
{ {
Entity = "ENDPOINT", Entity = EntityType.Endpoint,
Id = request.Id, Id = request.Id,
Endpoint = request.Data Endpoint = request.Data
}, cancel); }, cancel);

View File

@@ -1,5 +1,6 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.DeleteProcedure; using ReC.Application.Common.Procedures.DeleteProcedure;
using ReC.Application.Common.Procedures;
namespace ReC.Application.Profile.Commands; namespace ReC.Application.Profile.Commands;
@@ -27,7 +28,7 @@ public class DeleteProfileProcedureHandler(ISender sender) : IRequestHandler<Del
{ {
return await sender.Send(new DeleteObjectProcedure return await sender.Send(new DeleteObjectProcedure
{ {
Entity = "PROFILE", Entity = EntityType.Profile,
Start = request.Start, Start = request.Start,
End = request.End, End = request.End,
Force = request.Force Force = request.Force

View File

@@ -1,5 +1,6 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.InsertProcedure; using ReC.Application.Common.Procedures.InsertProcedure;
using ReC.Application.Common.Procedures;
namespace ReC.Application.Profile.Commands; namespace ReC.Application.Profile.Commands;
@@ -20,7 +21,7 @@ public class InsertProfileProcedureHandler(ISender sender) : IRequestHandler<Ins
{ {
return await sender.Send(new InsertObjectProcedure return await sender.Send(new InsertObjectProcedure
{ {
Entity = "PROFILE", Entity = EntityType.Profile,
Profile = request Profile = request
}, cancel); }, cancel);
} }

View File

@@ -1,6 +1,7 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.UpdateProcedure; using ReC.Application.Common.Procedures.UpdateProcedure;
using ReC.Application.Common.Procedures.UpdateProcedure.Dto; using ReC.Application.Common.Procedures.UpdateProcedure.Dto;
using ReC.Application.Common.Procedures;
namespace ReC.Application.Profile.Commands; namespace ReC.Application.Profile.Commands;
@@ -17,7 +18,7 @@ public class UpdateProfileProcedureHandler(ISender sender) : IRequestHandler<Upd
{ {
return await sender.Send(new UpdateObjectProcedure return await sender.Send(new UpdateObjectProcedure
{ {
Entity = "PROFILE", Entity = EntityType.Profile,
Id = request.Id, Id = request.Id,
Profile = request.Data Profile = request.Data
}, cancel); }, cancel);

View File

@@ -1,5 +1,6 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.DeleteProcedure; using ReC.Application.Common.Procedures.DeleteProcedure;
using ReC.Application.Common.Procedures;
namespace ReC.Application.RecActions.Commands; namespace ReC.Application.RecActions.Commands;
@@ -27,7 +28,7 @@ public class DeleteActionProcedureHandler(ISender sender) : IRequestHandler<Dele
{ {
return await sender.Send(new DeleteObjectProcedure return await sender.Send(new DeleteObjectProcedure
{ {
Entity = "ACTION", Entity = EntityType.Action,
Start = request.Start, Start = request.Start,
End = request.End, End = request.End,
Force = request.Force Force = request.Force

View File

@@ -1,6 +1,7 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.InsertProcedure; using ReC.Application.Common.Procedures.InsertProcedure;
using ReC.Domain.Constants; using ReC.Domain.Constants;
using ReC.Application.Common.Procedures;
namespace ReC.Application.RecActions.Commands; namespace ReC.Application.RecActions.Commands;
@@ -27,7 +28,7 @@ public class InsertActionProcedureHandler(ISender sender) : IRequestHandler<Inse
{ {
return await sender.Send(new InsertObjectProcedure return await sender.Send(new InsertObjectProcedure
{ {
Entity = "ACTION", Entity = EntityType.Action,
Action = request Action = request
}, cancel); }, cancel);
} }

View File

@@ -1,6 +1,7 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.UpdateProcedure; using ReC.Application.Common.Procedures.UpdateProcedure;
using ReC.Application.Common.Procedures.UpdateProcedure.Dto; using ReC.Application.Common.Procedures.UpdateProcedure.Dto;
using ReC.Application.Common.Procedures;
namespace ReC.Application.RecActions.Commands; namespace ReC.Application.RecActions.Commands;
@@ -17,7 +18,7 @@ public class UpdateActionProcedureHandler(ISender sender) : IRequestHandler<Upda
{ {
return await sender.Send(new UpdateObjectProcedure return await sender.Send(new UpdateObjectProcedure
{ {
Entity = "ACTION", Entity = EntityType.Action,
Id = request.Id, Id = request.Id,
Action = request.Data Action = request.Data
}, cancel); }, cancel);

View File

@@ -1,5 +1,6 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.DeleteProcedure; using ReC.Application.Common.Procedures.DeleteProcedure;
using ReC.Application.Common.Procedures;
namespace ReC.Application.Results.Commands; namespace ReC.Application.Results.Commands;
@@ -27,7 +28,7 @@ public class DeleteResultProcedureHandler(ISender sender) : IRequestHandler<Dele
{ {
return await sender.Send(new DeleteObjectProcedure return await sender.Send(new DeleteObjectProcedure
{ {
Entity = "RESULT", Entity = EntityType.Result,
Start = request.Start, Start = request.Start,
End = request.End, End = request.End,
Force = request.Force Force = request.Force

View File

@@ -1,7 +1,8 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.InsertProcedure; using ReC.Application.Common.Procedures.InsertProcedure;
using ReC.Application.RecActions.Commands; using ReC.Application.RecActions.Commands;
using ReC.Domain.Constants; using ReC.Domain.Constants;
using ReC.Application.Common.Procedures;
namespace ReC.Application.Results.Commands; namespace ReC.Application.Results.Commands;
@@ -24,7 +25,7 @@ public class InsertResultProcedureHandler(ISender sender) : IRequestHandler<Inse
{ {
return await sender.Send(new InsertObjectProcedure return await sender.Send(new InsertObjectProcedure
{ {
Entity = "RESULT", Entity = EntityType.Result,
Result = request Result = request
}, cancel); }, cancel);
} }

View File

@@ -1,6 +1,7 @@
using MediatR; using MediatR;
using ReC.Application.Common.Procedures.UpdateProcedure; using ReC.Application.Common.Procedures.UpdateProcedure;
using ReC.Application.Common.Procedures.UpdateProcedure.Dto; using ReC.Application.Common.Procedures.UpdateProcedure.Dto;
using ReC.Application.Common.Procedures;
namespace ReC.Application.Results.Commands; namespace ReC.Application.Results.Commands;
@@ -17,7 +18,7 @@ public class UpdateResultProcedureHandler(ISender sender) : IRequestHandler<Upda
{ {
return await sender.Send(new UpdateObjectProcedure return await sender.Send(new UpdateObjectProcedure
{ {
Entity = "RESULT", Entity = EntityType.Result,
Id = request.Id, Id = request.Id,
Result = request.Data Result = request.Data
}, cancel); }, cancel);