/** * @param Reservation $instance * @param ReservationSeries $series * @param IReservedItemView $existingItem * @param BookableResource[] $keyedResources * @return bool */ protected function IsInConflict(Reservation $instance, ReservationSeries $series, IReservedItemView $existingItem, $keyedResources) { if ($existingItem->GetId() == $instance->ReservationId() || $series->IsMarkedForDelete($existingItem->GetId()) || $series->IsMarkedForUpdate($existingItem->GetId())) { return false; } return parent::IsInConflict($instance, $series, $existingItem, $keyedResources); }
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); } }
private function RaiseInstanceUpdatedEvent(Reservation $instance) { if (!$instance->IsNew()) { $this->AddEvent(new InstanceUpdatedEvent($instance, $this)); $this->_updateRequestIds[] = $instance->ReservationId(); } }