19 declare(strict_types=1);
24 self::EVENT_USER_ASSIGNED,
25 self::EVENT_USER_DEASSIGNED,
26 self::EVENT_USER_REASSIGNED,
46 public function raise(
string $event, array $parameter):
void 48 $parameter_formatter =
static function ($value) use (&$parameter_formatter) {
49 if (is_object($value)) {
50 return get_class($value);
53 if (is_array($value)) {
63 $this->
logger->debug(
"PRG raised: " . $event .
' (' . var_export(
array_map(
68 if (in_array($event, [
69 self::EVENT_USER_ASSIGNED,
70 self::EVENT_USER_DEASSIGNED,
71 self::EVENT_USER_SUCCESSFUL,
72 self::EVENT_USER_NOT_SUCCESSFUL,
73 self::EVENT_VALIDITY_CHANGE
75 $this->prg_event_handler->updateLPStatus($parameter[
'prg_id'], $parameter[
'usr_id']);
78 if (in_array($event, [
79 self::EVENT_USER_SUCCESSFUL,
80 self::EVENT_USER_NOT_SUCCESSFUL,
81 self::EVENT_VALIDITY_CHANGE,
82 self::EVENT_SCORE_CHANGE
84 && $parameter[
"root_prg_id"] === $parameter[
"prg_id"]
86 $cert = fn() => $this->app_event_handler->raise(self::COMPONENT, self::EVENT_USER_SUCCESSFUL, $parameter);
87 $this->prg_event_handler->triggerCertificateOnce($cert, $parameter[
"root_prg_id"], $parameter[
"usr_id"]);
90 if ($event === self::EVENT_USER_ABOUT_TO_FAIL) {
91 $this->prg_event_handler->sendRiskyToFailMail($parameter[
'ass_id'], $parameter[
'root_prg_id']);
93 if ($event === self::EVENT_USER_TO_RESTART) {
94 $this->prg_event_handler->sendInformToReAssignMail($parameter[
'ass_id'], $parameter[
'root_prg_id']);
96 if ($event === self::EVENT_USER_REASSIGNED) {
97 $this->prg_event_handler->sendReAssignedMail($parameter[
'ass_id'], $parameter[
'root_prg_id']);
99 if ($event === self::EVENT_VALIDITY_CHANGE) {
100 $this->prg_event_handler->resetMailFlagValidity($parameter[
'ass_id'], $parameter[
'root_prg_id']);
102 if ($event === self::EVENT_DEADLINE_CHANGE) {
103 $this->prg_event_handler->resetMailFlagDeadline($parameter[
'ass_id'], $parameter[
'root_prg_id']);
106 if (in_array($event, self::PUBLIC_EVENTS)) {
107 $this->app_event_handler->raise(self::COMPONENT, $event, $parameter);
114 self::EVENT_USER_ASSIGNED,
116 "root_prg_id" => $assignment->
getRootId(),
119 "ass_id" => $assignment->
getId()
127 self::EVENT_USER_DEASSIGNED,
129 "root_prg_id" => $a_assignment->
getRootId(),
132 "ass_id" => $a_assignment->
getId()
140 self::EVENT_USER_REASSIGNED,
142 "ass_id" => $assignment->
getId(),
151 self::EVENT_USER_SUCCESSFUL,
153 "root_prg_id" => $assignment->
getRootId(),
154 "prg_id" => $pgs_node_id,
156 "ass_id" => $assignment->
getId()
164 self::EVENT_USER_TO_RESTART,
166 "ass_id" => (
int) $assignment->
getId(),
175 self::EVENT_USER_ABOUT_TO_FAIL,
177 "ass_id" => (
int) $assignment->
getId(),
185 $this->
raise(self::EVENT_VALIDITY_CHANGE, [
186 "ass_id" => $assignment->
getId(),
187 "root_prg_id" => $assignment->
getRootId(),
188 "prg_id" => $pgs_node_id,
195 $this->
raise(self::EVENT_DEADLINE_CHANGE, [
196 "ass_id" => $assignment->
getId(),
197 "root_prg_id" => $assignment->
getRootId(),
198 "prg_id" => $pgs_node_id,
205 $this->
raise(self::EVENT_SCORE_CHANGE, [
206 "ass_id" => $assignment->
getId(),
207 "root_prg_id" => $assignment->
getRootId(),
208 "prg_id" => $pgs_node_id,
215 $this->
raise(self::EVENT_USER_NOT_SUCCESSFUL, [
216 "ass_id" => $assignment->
getId(),
217 "root_prg_id" => $assignment->
getRootId(),
218 "prg_id" => $pgs_node_id,
informUserByMailToRestart(ilPRGAssignment $assignment)
userDeassigned(ilPRGAssignment $a_assignment)
userSuccessful(ilPRGAssignment $assignment, int $pgs_node_id)
__construct(protected ilLogger $logger, protected ilAppEventHandler $app_event_handler, protected 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)
scoreChange(ilPRGAssignment $assignment, int $pgs_node_id)