protected function _addGroup(GroupListModel $result, $filterList, $filterArray, $label, $avoidClosed = false) { try { //Closed alarms $newFilterList = clone $filterList; if ($avoidClosed) { $filterArray[] = array('fieldName' => AlarmFilterFields::STATE, 'value' => AlarmModel::STATE_CLOSED, 'inverted' => true); } foreach ($filterArray as $filter) { $newFilterList->addFilter(new \App_ListFilter_EqualFilter($filter)); } $partialResult = $this->_alarmSrv->listAll($newFilterList, array('paging' => array('count' => 0))); if ($partialResult instanceof ListResultModel) { $result->addGroup(new GroupCountResultModel(array('label' => $label, 'stream' => $partialResult))); } } catch (PermissionException $e) { //Nothing to do } catch (NotAllowedException $e) { //Nothing to do } }
public function init() { $this->_service = \Application\Service\AlarmService::getInstance(); }
/** * Add alarms list to sim * * @param SimModel $sim */ protected function _addAlarms(SimModel $sim) { try { // Aggregators cannot list alarms, but they can retrieve // alarm list for a sim. Strange behavior, I know. // GLOBALPORTAL-94024 // $dumbModel = new AlarmModel(); // $this->_helper->allowed('list', $dumbModel); $result = array(); /** * @var $alarmService \Application\Service\AlarmService */ $alarmService = \Application\Service\AlarmService::getInstance(); //prepare filter $filterValues = array(); $filterValues[AlarmFilterFields::SIM_ICC] = $sim->getIcc(); $filterValues[AlarmFilterFields::STATE] = "!" . AlarmModel::STATE_CLOSED; $filterValues['sortBy'] = AlarmSortingFields::OPEN_TIME; if (\App::getOrgUserLogged()->type == OrgAggregatorModel::ORG_TYPE) { $filterValues[AlarmFilterFields::ALARM_TYPE] = "!" . AlarmModel::TYPE_SUPERVISION; } $filterList = $alarmService->buildFilterList($filterValues); $alarms = $alarmService->listAll($filterList); $alarms->getIterator()->addPlugin(new Stream\Plugin\Allowed(array('permission' => 'read'))); $alarms->getIterator()->addPlugin(new Stream\Plugin\FilterNotAllowedFields(array('permission' => 'read_field'))); // Add list to sim response $sim->setAlarms($alarms->getItems()); } catch (\Exception $e) { App::log()->err("An exception occurred while retrieving alarms: " . $e->getMessage()); // No, do nothing } }