Пример #1
0
 /**
  * @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);
     }
 }
Пример #2
0
 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();
 }
Пример #3
0
 /**
  * @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));
 }
Пример #5
0
 /**
  * @param int $scheduleId
  * @param int $adminGroupId
  */
 public function ChangeAdminGroup($scheduleId, $adminGroupId)
 {
     $schedule = $this->scheduleRepository->LoadById($scheduleId);
     $schedule->SetAdminGroupId($adminGroupId);
     $this->scheduleRepository->Update($schedule);
 }