Example #1
0
 public function PageLoad(UserSession $user)
 {
     $showInaccessibleResources = $this->_page->ShowInaccessibleResources();
     $schedules = $this->_scheduleService->GetAll($showInaccessibleResources, $user);
     if (count($schedules) == 0) {
         $this->_page->ShowPermissionError(true);
         return;
     }
     $this->_page->ShowPermissionError(false);
     $currentSchedule = $this->_builder->GetCurrentSchedule($this->_page, $schedules, $user);
     $targetTimezone = $this->_page->GetDisplayTimezone($user, $currentSchedule);
     $activeScheduleId = $currentSchedule->GetId();
     $this->_builder->BindSchedules($this->_page, $schedules, $currentSchedule);
     $scheduleDates = $this->_builder->GetScheduleDates($user, $currentSchedule, $this->_page);
     $this->_builder->BindDisplayDates($this->_page, $scheduleDates, $currentSchedule);
     $resourceGroups = $this->_resourceService->GetResourceGroups($activeScheduleId, $user);
     $this->_builder->BindResourceGroups($this->_page, $resourceGroups);
     $resourceTypes = $this->_resourceService->GetResourceTypes();
     $this->_builder->BindResourceTypes($this->_page, $resourceTypes);
     $resourceAttributes = $this->_resourceService->GetResourceAttributes();
     $resourceTypeAttributes = $this->_resourceService->GetResourceTypeAttributes();
     $layout = $this->_scheduleService->GetLayout($activeScheduleId, new ScheduleLayoutFactory($targetTimezone));
     $reservationListing = $this->_reservationService->GetReservations($scheduleDates, $activeScheduleId, $targetTimezone);
     $dailyLayout = $this->_dailyLayoutFactory->Create($reservationListing, $layout);
     $filter = $this->_builder->GetResourceFilter($activeScheduleId, $this->_page);
     $this->_builder->BindResourceFilter($this->_page, $filter, $resourceAttributes, $resourceTypeAttributes);
     $resources = $this->_resourceService->GetScheduleResources($activeScheduleId, $showInaccessibleResources, $user, $filter);
     $this->_builder->BindReservations($this->_page, $resources, $dailyLayout);
 }