/**
  * 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);
     }
 }