determineMember static method
Future<String?>
determineMember(
- Responsible? responsible,
- AppModel app,
- MemberModel member,
- AssignmentModel currentAssignment,
Implementation
static Future<String?> determineMember(Responsible? responsible, AppModel app,
MemberModel member, AssignmentModel currentAssignment) async {
switch (responsible) {
case Responsible.currentMember:
return member.documentID;
case Responsible.owner:
return app.ownerID;
case Responsible.first:
var findAssignment = currentAssignment;
String? assigneeId;
while (findAssignment.triggeredById != null) {
assigneeId = findAssignment.assigneeId;
var found = await (assignmentRepository(appId: app.documentID)!
.get(findAssignment.triggeredById));
if (found != null) {
findAssignment = found;
} else {
return null;
}
}
return assigneeId;
case Responsible.previous:
if (currentAssignment.triggeredById != null) {
var triggeredBy = await (assignmentRepository(appId: app.documentID)!
.get(currentAssignment.triggeredById));
if (triggeredBy != null) {
return triggeredBy.assigneeId;
} else {
return null;
}
}
break;
case null:
break;
}
return null;
}