19 declare(strict_types=1);
26 self::EVENT_USER_ASSIGNED,
27 self::EVENT_USER_DEASSIGNED,
28 self::EVENT_USER_REASSIGNED,
48 $this->prg_event_handler = $prg_event_handler;
51 public function raise(
string $event, array $parameter):
void 53 $parameter_formatter =
static function ($value) use (&$parameter_formatter) {
54 if (is_object($value)) {
55 return get_class($value);
58 if (is_array($value)) {
68 $this->
logger->debug(
"PRG raised: " . $event .
' (' . var_export(array_map(
73 if (in_array($event, [
74 self::EVENT_USER_ASSIGNED,
75 self::EVENT_USER_DEASSIGNED,
76 self::EVENT_USER_SUCCESSFUL,
77 self::EVENT_USER_NOT_SUCCESSFUL,
78 self::EVENT_VALIDITY_CHANGE
80 $this->prg_event_handler->updateLPStatus($parameter[
'prg_id'], $parameter[
'usr_id']);
83 if (in_array($event, [
84 self::EVENT_USER_SUCCESSFUL,
85 self::EVENT_USER_NOT_SUCCESSFUL,
86 self::EVENT_VALIDITY_CHANGE,
87 self::EVENT_SCORE_CHANGE
89 && $parameter[
"root_prg_id"] === $parameter[
"prg_id"]
91 $cert = fn () => $this->app_event_handler->raise(self::COMPONENT, self::EVENT_USER_SUCCESSFUL, $parameter);
92 $this->prg_event_handler->triggerCertificateOnce($cert, $parameter[
"root_prg_id"], $parameter[
"usr_id"]);
95 if ($event === self::EVENT_USER_ABOUT_TO_FAIL) {
96 $this->prg_event_handler->sendRiskyToFailMail($parameter[
'ass_id'], $parameter[
'root_prg_id']);
98 if ($event === self::EVENT_USER_TO_RESTART) {
99 $this->prg_event_handler->sendInformToReAssignMail($parameter[
'ass_id'], $parameter[
'root_prg_id']);
101 if ($event === self::EVENT_USER_REASSIGNED) {
102 $this->prg_event_handler->sendReAssignedMail($parameter[
'ass_id'], $parameter[
'root_prg_id']);
104 if ($event === self::EVENT_VALIDITY_CHANGE) {
105 $this->prg_event_handler->resetMailFlagValidity($parameter[
'ass_id'], $parameter[
'root_prg_id']);
107 if ($event === self::EVENT_DEADLINE_CHANGE) {
108 $this->prg_event_handler->resetMailFlagDeadline($parameter[
'ass_id'], $parameter[
'root_prg_id']);
111 if (in_array($event, self::PUBLIC_EVENTS)) {
112 $this->app_event_handler->raise(self::COMPONENT, $event, $parameter);
119 self::EVENT_USER_ASSIGNED,
121 "root_prg_id" => $assignment->
getRootId(),
124 "ass_id" => $assignment->
getId()
132 self::EVENT_USER_DEASSIGNED,
134 "root_prg_id" => $a_assignment->
getRootId(),
137 "ass_id" => $a_assignment->
getId()
145 self::EVENT_USER_REASSIGNED,
147 "ass_id" => $assignment->
getId(),
156 self::EVENT_USER_SUCCESSFUL,
158 "root_prg_id" => $assignment->
getRootId(),
159 "prg_id" => $pgs_node_id,
161 "ass_id" => $assignment->
getId()
169 self::EVENT_USER_TO_RESTART,
171 "ass_id" => (
int) $assignment->
getId(),
180 self::EVENT_USER_ABOUT_TO_FAIL,
182 "ass_id" => (
int) $assignment->
getId(),
190 $this->
raise(self::EVENT_VALIDITY_CHANGE, [
191 "ass_id" => $assignment->
getId(),
192 "root_prg_id" => $assignment->
getRootId(),
193 "prg_id" => $pgs_node_id,
200 $this->
raise(self::EVENT_DEADLINE_CHANGE, [
201 "ass_id" => $assignment->
getId(),
202 "root_prg_id" => $assignment->
getRootId(),
203 "prg_id" => $pgs_node_id,
210 $this->
raise(self::EVENT_SCORE_CHANGE, [
211 "ass_id" => $assignment->
getId(),
212 "root_prg_id" => $assignment->
getRootId(),
213 "prg_id" => $pgs_node_id,
220 $this->
raise(self::EVENT_USER_NOT_SUCCESSFUL, [
221 "ass_id" => $assignment->
getId(),
222 "root_prg_id" => $assignment->
getRootId(),
223 "prg_id" => $pgs_node_id,
ilAppEventHandler $app_event_handler
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
informUserByMailToRestart(ilPRGAssignment $assignment)
userDeassigned(ilPRGAssignment $a_assignment)
userSuccessful(ilPRGAssignment $assignment, int $pgs_node_id)
__construct(ilLogger $logger, ilAppEventHandler $app_event_handler, PRGEventHandler $prg_event_handler)
userAssigned(ilPRGAssignment $assignment)
userRevertSuccessful(ilPRGAssignment $assignment, int $pgs_node_id)
validityChange(ilPRGAssignment $assignment, int $pgs_node_id)
userReAssigned(ilPRGAssignment $assignment)
Assignments are relations of users to a PRG; They hold progress-information for (sub-)nodes of the PR...
userRiskyToFail(ilPRGAssignment $assignment)
deadlineChange(ilPRGAssignment $assignment, int $pgs_node_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
scoreChange(ilPRGAssignment $assignment, int $pgs_node_id)