setDeadline method
Sets a deadline for the given taskId
.
Implementation
Future<void> setDeadline(int taskId, DateTime start, DateTime end) async {
if (!state.hasData) {
log('Cannot set deadline: No plan loaded.');
return;
}
try {
final deadline = PlanDeadline(
id: taskId,
start: start,
end: end,
);
data(
state.requireData.copyWith(
deadlines: [
...state.requireData.deadlines.where((d) => d.id != taskId),
deadline,
],
),
);
await _deadlines.setDeadline(
_auth.state.requireData[Webservice.lb_planner_api],
deadline,
);
log('Deadline set.');
await captureEvent('deadline_set', properties: {'id': taskId, 'start': start, 'end': end});
await _tasks.build(this);
await build(this);
} catch (e, st) {
log('Failed to set deadline.', e, st);
return;
}
}