/** * @name GetSchedule * @description Loads a specific schedule by id * @response ScheduleResponse * @param $scheduleId * @return void */ public function GetSchedule($scheduleId) { $schedule = $this->scheduleRepository->LoadById($scheduleId); if ($schedule != null) { $layout = $this->scheduleRepository->GetLayout($schedule->GetId(), new ScheduleLayoutFactory($this->server->GetSession()->Timezone)); $this->server->WriteResponse(new ScheduleResponse($this->server, $schedule, $layout)); } else { $this->server->WriteResponse(RestResponse::NotFound(), RestResponse::NOT_FOUND_CODE); } }
public function Validate($reservationSeries) { foreach ($reservationSeries->AllResources() as $resource) { if (!$resource->GetAllowMultiday()) { $schedule = $this->scheduleRepository->LoadById($reservationSeries->ScheduleId()); $tz = $schedule->GetTimezone(); $isSameDay = $reservationSeries->CurrentInstance()->StartDate()->ToTimezone($tz)->DateEquals($reservationSeries->CurrentInstance()->EndDate()->ToTimezone($tz)); return new ReservationRuleResult($isSameDay, Resources::GetInstance()->GetString('MultiDayRule', $resource->GetName())); } } return new ReservationRuleResult(); }
/** * @param ReservationSeries $reservationSeries * @return ReservationRuleResult */ public function Validate($reservationSeries) { $quotas = $this->quotaRepository->LoadAll(); $user = $this->userRepository->LoadById($reservationSeries->UserId()); $schedule = $this->scheduleRepository->LoadById($reservationSeries->ScheduleId()); foreach ($quotas as $quota) { if ($quota->ExceedsQuota($reservationSeries, $user, $schedule, $this->reservationViewRepository)) { Log::Debug('Quota exceeded. %s', $quota->ToString()); return new ReservationRuleResult(false, Resources::GetInstance()->GetString('QuotaExceeded')); } } return new ReservationRuleResult(); }
/** * @param int $scheduleId * @return CalendarSubscriptionDetails */ public function ForSchedule($scheduleId) { $schedule = $this->scheduleRepository->LoadById($scheduleId); return new CalendarSubscriptionDetails($schedule->GetIsCalendarSubscriptionAllowed(), new CalendarSubscriptionUrl(null, $schedule->GetPublicId(), null)); }
/** * @param int $scheduleId * @param int $adminGroupId */ public function ChangeAdminGroup($scheduleId, $adminGroupId) { $schedule = $this->scheduleRepository->LoadById($scheduleId); $schedule->SetAdminGroupId($adminGroupId); $this->scheduleRepository->Update($schedule); }