evaluateSeoEditorialWorkflowAction function
SeoEditorialWorkflowEvaluation?
evaluateSeoEditorialWorkflowAction({
- required SeoEditorialWorkflowTransition transition,
- required SeoEditorialWorkflowViewProjection project,
- required SeoEditorialWorkflowEvaluation current,
- required SeoEditorialWorkflowAction action,
Implementation
SeoEditorialWorkflowEvaluation? evaluateSeoEditorialWorkflowAction({
required SeoEditorialWorkflowTransition transition,
required SeoEditorialWorkflowViewProjection project,
required SeoEditorialWorkflowEvaluation current,
required SeoEditorialWorkflowAction action,
}) {
final result = evaluateSeoApplicationAction(
currentState: current.state,
currentView: current.view,
action: action,
canonicalizeState: _canonicalSeoEditorialWorkflowState,
validateView: _validateSeoEditorialWorkflowView,
isActionAdmitted: isSeoEditorialWorkflowActionEnabled,
transition: transition,
validateCandidate: (state, candidateAction, candidate) {
final target = _targetSeoEditorialWorkflowStage(
state.stage,
candidateAction,
);
if (target == null) return null;
final expected = SeoEditorialWorkflowState(
stage: target,
history: List.unmodifiable([...state.history, target]),
);
return candidate == expected ? expected : null;
},
project: project,
);
if (result == null) return null;
return SeoEditorialWorkflowEvaluation(
state: result.state,
view: result.view,
accepted: result.accepted,
);
}