Audit finding
ApplicationProfilesGrid repeats executable-path validation in four event-args classes and repeats domain-to-cell mapping in AddRow and UpdateApplication.
Selector columns repeat construction properties, and change dispatch is a long column-name conditional that must be edited for every field.
The grid therefore owns too many representations of the same row truth.
Target state
Introduce:
- an immutable
ApplicationAssignmentRow view model;
- one mapper from assignment/settings to row;
- one typed
ApplicationAssignmentChange contract (or focused equivalent);
- one selector-column factory/definition table.
The grid must remain independent of persistence and transaction logic.
Acceptance criteria
Audit finding
ApplicationProfilesGridrepeats executable-path validation in four event-args classes and repeats domain-to-cell mapping inAddRowandUpdateApplication.Selector columns repeat construction properties, and change dispatch is a long column-name conditional that must be edited for every field.
The grid therefore owns too many representations of the same row truth.
Target state
Introduce:
ApplicationAssignmentRowview model;ApplicationAssignmentChangecontract (or focused equivalent);The grid must remain independent of persistence and transaction logic.
Acceptance criteria