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);
 }