public function Execute(Database $database) { $instanceId = $this->instance->ReservationId(); $updateReservationCommand = new UpdateReservationCommand($this->instance->ReferenceNumber(), $this->series->SeriesId(), $this->instance->StartDate(), $this->instance->EndDate()); $database->Execute($updateReservationCommand); foreach ($this->instance->RemovedParticipants() as $participantId) { $removeReservationUser = new RemoveReservationUserCommand($instanceId, $participantId); $database->Execute($removeReservationUser); } foreach ($this->instance->RemovedInvitees() as $inviteeId) { $insertReservationUser = new RemoveReservationUserCommand($instanceId, $inviteeId); $database->Execute($insertReservationUser); } foreach ($this->instance->AddedParticipants() as $participantId) { $insertReservationUser = new AddReservationUserCommand($instanceId, $participantId, ReservationUserLevel::PARTICIPANT); $database->Execute($insertReservationUser); } foreach ($this->instance->AddedInvitees() as $inviteeId) { $insertReservationUser = new AddReservationUserCommand($instanceId, $inviteeId, ReservationUserLevel::INVITEE); $database->Execute($insertReservationUser); } }
public function __toString() { return sprintf("%s%s", get_class($this), $this->instance->ReferenceNumber()); }
/** * @param Reservation $instance * @return bool */ protected function IsCurrent(Reservation $instance) { return $instance->ReferenceNumber() == $this->CurrentInstance()->ReferenceNumber(); }
/** * @param Reservation $instance * @param array|int[] $inviteeIds * @return ReservationUserRow */ public function WithInvitees($instance, $inviteeIds) { foreach ($inviteeIds as $id) { $this->AddRow($instance->ReferenceNumber(), $id, ReservationUserLevel::INVITEE); } return $this; }
private function GetAddReservationCommand($expectedSeriesId, Reservation $expectedInstance) { return new AddReservationCommand($expectedInstance->StartDate(), $expectedInstance->EndDate(), $expectedInstance->ReferenceNumber(), $expectedSeriesId); }