public function Bind(IReservationComponentInitializer $initializer) { $requestedScheduleId = $initializer->GetScheduleId(); $requestedResourceId = $initializer->GetResourceId(); $groups = $this->resourceService->GetResourceGroups($requestedScheduleId, $initializer->CurrentUser()); $resources = $groups->GetAllResources(); if (empty($requestedResourceId) && count($resources) > 0) { $first = reset($resources); $requestedResourceId = $first->Id; } $bindableResourceData = $this->GetBindableResourceData($resources, $requestedResourceId); if ($bindableResourceData->NumberAccessible <= 0) { $initializer->RedirectToError(ErrorMessages::INSUFFICIENT_PERMISSIONS); return; } $initializer->BindResourceGroups($groups); $initializer->BindAvailableResources($resources); $accessories = $this->resourceService->GetAccessories(); $initializer->BindAvailableAccessories($accessories); $initializer->ShowAdditionalResources($bindableResourceData->NumberAccessible > 0); $initializer->SetReservationResource($bindableResourceData->ReservationResource); }