public function __construct(IRestServer $server, Schedule $schedule, IScheduleLayout $layout) { $this->daysVisible = $schedule->GetDaysVisible(); $this->id = $schedule->GetId(); $this->isDefault = $schedule->GetIsDefault(); $this->name = $schedule->GetName(); $this->timezone = $schedule->GetTimezone(); $this->weekdayStart = $schedule->GetWeekdayStart(); if ($schedule->GetIsCalendarSubscriptionAllowed()) { $url = new CalendarSubscriptionUrl(null, $schedule->GetPublicId(), null); $this->icsUrl = $url->__toString(); } $layoutDate = Date::Now()->ToTimezone($server->GetSession()->Timezone); for ($day = 0; $day < 7; $day++) { $periods = $layout->GetLayout($layoutDate); foreach ($periods as $period) { $this->periods[$layoutDate->Weekday()][] = new SchedulePeriodResponse($period); } $layoutDate = $layoutDate->AddDays(1); } }
public function Update(Schedule $schedule) { ServiceLocator::GetDatabase()->Execute(new UpdateScheduleCommand($schedule->GetId(), $schedule->GetName(), $schedule->GetIsDefault(), $schedule->GetWeekdayStart(), $schedule->GetDaysVisible(), $schedule->GetIsCalendarSubscriptionAllowed(), $schedule->GetPublicId(), $schedule->GetAdminGroupId())); if ($schedule->GetIsDefault()) { ServiceLocator::GetDatabase()->Execute(new SetDefaultScheduleCommand($schedule->GetId())); } }
public function testCanUpdateSchedule() { $id = 10; $name = 'super schedule'; $isDefault = 0; $weekdayStart = 5; $daysVisible = 3; $subscriptionEnabled = true; $adminGroupId = 123; $schedule = new Schedule($id, $name, $isDefault, $weekdayStart, $daysVisible); $schedule->EnableSubscription(); $publicId = $schedule->GetPublicId(); $schedule->SetAdminGroupId($adminGroupId); $this->scheduleRepository->Update($schedule); $this->assertEquals(new UpdateScheduleCommand($id, $name, $isDefault, $weekdayStart, $daysVisible, $subscriptionEnabled, $publicId, $adminGroupId), $this->db->_LastCommand); }