/**
  * @param $pageNumber int
  * @param $pageSize int
  * @param $filter ReservationFilter
  * @param $user UserSession
  * @return PageableData|ReservationItemView[]
  */
 public function LoadFiltered($pageNumber, $pageSize, $filter, $user)
 {
     $groupIds = array();
     $groups = $this->userRepository->LoadGroups($user->UserId, RoleLevel::RESOURCE_ADMIN);
     foreach ($groups as $group) {
         $groupIds[] = $group->GroupId;
     }
     $filter->_And(new SqlFilterIn(new SqlFilterColumn(TableNames::RESOURCES, ColumnNames::RESOURCE_ADMIN_GROUP_ID), $groupIds));
     return $this->reservationViewRepository->GetList($pageNumber, $pageSize, null, null, $filter->GetFilter());
 }
 public function GetList($pageNumber, $pageSize, $sortField = null, $sortDirection = null, $filter = null)
 {
     if (!$this->user->IsAdmin) {
         $scheduleAdminGroupIds = array();
         $resourceAdminGroupIds = array();
         $groups = $this->repo->LoadGroups($this->user->UserId, array(RoleLevel::SCHEDULE_ADMIN, RoleLevel::RESOURCE_ADMIN));
         foreach ($groups as $group) {
             if ($group->IsResourceAdmin) {
                 $resourceAdminGroupIds[] = $group->GroupId;
             }
             if ($group->IsScheduleAdmin) {
                 $scheduleAdminGroupIds[] = $group->GroupId;
             }
         }
         if ($filter == null) {
             $filter = new SqlFilterNull();
         }
         $additionalFilter = new SqlFilterIn(new SqlFilterColumn(TableNames::SCHEDULES_ALIAS, ColumnNames::SCHEDULE_ADMIN_GROUP_ID), $scheduleAdminGroupIds);
         $filter->_And($additionalFilter->_Or(new SqlFilterIn(new SqlFilterColumn(TableNames::RESOURCES_ALIAS, ColumnNames::RESOURCE_ADMIN_GROUP_ID), $resourceAdminGroupIds)));
     }
     return parent::GetList($pageNumber, $pageSize, $sortField, $sortDirection, $filter);
 }
 /**
  * @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);
 }