executeWorkflow static method
void
executeWorkflow(
- BuildContext context,
- WorkflowActionModel action, {
- FinaliseWorkflow? finaliseWorkflow,
Implementation
static void executeWorkflow(BuildContext context, WorkflowActionModel action,
{FinaliseWorkflow? finaliseWorkflow}) {
var app = action.app;
var accessState = AccessBloc.getState(context);
if (accessState is AccessDetermined) {
var workflowModel = action.workflow!;
var member = accessState.getMember();
if (member != null) {
var memberId = member.documentID;
if ((workflowModel.workflowTask != null) &&
(workflowModel.workflowTask!.isNotEmpty)) {
var firstWorkflowTask = workflowModel.workflowTask![0];
var firstTask = firstWorkflowTask.task!;
var assignment = AssignmentModel(
documentID: newRandomKey(),
appId: app.documentID,
reporterId: accessState.getMember()!.documentID,
assigneeId: memberId,
task: firstTask,
workflow: workflowModel,
timestamp: null,
triggeredById: null,
workflowTaskSeqNumber: firstWorkflowTask.seqNumber,
resultsPrevious: null,
confirmMessage: firstWorkflowTask.confirmMessage,
rejectMessage: firstWorkflowTask.rejectMessage,
status: AssignmentStatus.open,
);
firstTask.callExecute(app, context, memberId, assignment, true,
finaliseWorkflow: finaliseWorkflow);
} else {
throw Exception("No tasks in workflow");
}
} else {
throw Exception("No member logged on. Can't execute workflow");
}
} else {
throw Exception(
"AccessState is not AccessDetermined. Can't execute workflow");
}
}