/** * Common BaseEvent listener. This will create a new log of the event and persist it to the database. * * @param BaseEvent $event */ public function onCommonLogAction(BaseEvent $event) { // event data is expected to be an instance of LogEventData $eventData = $event->getData(); $logAction = $this->getLogActionOfEventName($event->getName()); $log = new Log(); $log->setAccountId($this->loggedAccountId); $log->setAction($logAction); $log->setApplicationContext($this->applicationContext); if ($eventData instanceof LogEventData) { $log->setMessage($eventData->getMessage()); $log->setData(\json_encode($eventData->getData())); // quick fix for login since no logged accountId is set yet $dataArr = $eventData->getData(); if (isset($dataArr['accountId']) && $dataArr['accountId']) { $log->setAccountId($dataArr['accountId']); } // we only cater those with LogEventData $this->logService->save($log); } else { // for BC } }
/** * * @param BaseEvent $event */ public function onDeleteMedicalCenterAction(BaseEvent $event) { $object = $event->getData(); $param = array('key' => array((int) $object->getId(), AlertClasses::INSTITUTION_MEDICAL_CENTER)); $alerts = $this->alertService->getAlerts(AlertService::REFERENCE_ALERT_VIEW_URI, $param); if (count($alerts)) { for ($i = 0; $i < count($alerts); $i++) { $alerts[$i]['_deleted'] = true; } $this->alertService->multipleUpdate($alerts); } }