Ejemplo n.º 1
0
 /**
  * @param int $pageNumber
  * @param int $pageSize
  * @param BlackoutFilter $filter
  * @param UserSession $user
  * @return BlackoutItemView[]|PageableData
  */
 public function LoadFiltered($pageNumber, $pageSize, $filter, $user)
 {
     $blackoutFilter = $filter->GetFilter();
     if (!$user->IsAdmin) {
         $groups = $this->userRepository->LoadGroups($user->UserId, array(RoleLevel::RESOURCE_ADMIN, RoleLevel::SCHEDULE_ADMIN));
         $groupIds = array();
         foreach ($groups as $group) {
             $groupIds[] = $group->GroupId;
         }
         $adminFilter = new SqlFilterIn(new SqlFilterColumn('r', ColumnNames::RESOURCE_ADMIN_GROUP_ID), $groupIds);
         $adminFilter->_Or(new SqlFilterIn(new SqlFilterColumn(TableNames::SCHEDULES, ColumnNames::SCHEDULE_ADMIN_GROUP_ID), $groupIds));
         $blackoutFilter->_And($adminFilter);
     }
     return $this->reservationViewRepository->GetBlackoutList($pageNumber, $pageSize, null, null, $blackoutFilter);
 }