Refactor validator to use nested property accessors

Update InsertObjectProcedureValidator to reference nested properties (e.g., x.Action.ProfileId instead of x.ActionProfileId) throughout all entity validation rules. Adjust .When conditions accordingly to match the new data model structure with grouped sub-objects.
This commit is contained in:
2026-01-14 13:17:10 +01:00
parent 3864b0f68b
commit 563375f6e3

View File

@@ -16,11 +16,11 @@ public class InsertObjectProcedureValidator : AbstractValidator<InsertObjectProc
// ACTION validation
When(x => x.Entity == "ACTION", () =>
{
RuleFor(x => x.ActionProfileId)
RuleFor(x => x.Action.ProfileId)
.NotNull()
.WithMessage("ACTION requires ActionProfileId (maps to @pACTION_PROFILE_ID).");
RuleFor(x => x.ActionEndpointId)
RuleFor(x => x.Action.EndpointId)
.NotNull()
.WithMessage("ACTION requires ActionEndpointId (maps to @pACTION_ENDPOINT_ID).");
});
@@ -28,7 +28,7 @@ public class InsertObjectProcedureValidator : AbstractValidator<InsertObjectProc
// ENDPOINT validation
When(x => x.Entity == "ENDPOINT", () =>
{
RuleFor(x => x.EndpointUri)
RuleFor(x => x.Endpoint.Uri)
.NotEmpty()
.WithMessage("ENDPOINT requires EndpointUri (maps to @pENDPOINT_URI).")
.MaximumLength(2000);
@@ -37,28 +37,28 @@ public class InsertObjectProcedureValidator : AbstractValidator<InsertObjectProc
// PROFILE validation
When(x => x.Entity == "PROFILE", () =>
{
RuleFor(x => x.ProfileName)
RuleFor(x => x.Profile.Name)
.NotEmpty()
.WithMessage("PROFILE requires ProfileName (maps to @pPROFILE_NAME).")
.MaximumLength(50);
RuleFor(x => x.ProfileMandantor)
RuleFor(x => x.Profile.Mandantor)
.MaximumLength(50)
.When(x => x.ProfileMandantor != null);
.When(x => x.Profile.Mandantor != null);
RuleFor(x => x.ProfileDescription)
RuleFor(x => x.Profile.Description)
.MaximumLength(250)
.When(x => x.ProfileDescription != null);
.When(x => x.Profile.Description != null);
});
// RESULT validation
When(x => x.Entity == "RESULT", () =>
{
RuleFor(x => x.ResultActionId)
RuleFor(x => x.Result.ActionId)
.NotNull()
.WithMessage("RESULT requires ResultActionId (maps to @pRESULT_ACTION_ID).");
RuleFor(x => x.ResultStatusId)
RuleFor(x => x.Result.StatusId)
.NotNull()
.WithMessage("RESULT requires ResultStatusId (maps to @pRESULT_STATUS_ID).");
});
@@ -66,7 +66,7 @@ public class InsertObjectProcedureValidator : AbstractValidator<InsertObjectProc
// ENDPOINT_PARAMS validation
When(x => x.Entity == "ENDPOINT_PARAMS", () =>
{
RuleFor(x => x.EndpointParamsGroupId)
RuleFor(x => x.EndpointParams.GroupId)
.NotNull()
.WithMessage("ENDPOINT_PARAMS requires EndpointParamsGroupId (maps to @pENDPOINT_PARAMS_GROUP_ID).");
});
@@ -76,12 +76,12 @@ public class InsertObjectProcedureValidator : AbstractValidator<InsertObjectProc
.MaximumLength(50)
.When(x => x.AddedWho != null);
RuleFor(x => x.EndpointDescription)
RuleFor(x => x.Endpoint.Description)
.MaximumLength(250)
.When(x => x.EndpointDescription != null);
.When(x => x.Endpoint.Description != null);
RuleFor(x => x.EndpointAuthDescription)
RuleFor(x => x.EndpointAuth.Description)
.MaximumLength(250)
.When(x => x.EndpointAuthDescription != null);
.When(x => x.EndpointAuth.Description != null);
}
}