コード例 #1
0
 /**
  * @param ReservationSeries $reservationSeries
  * @return ReservationRuleResult
  */
 public function Validate($reservationSeries)
 {
     $errorMessage = new StringBuilder();
     if ($reservationSeries->GetStartReminder()->Enabled()) {
         if (!$this->minutesValid($reservationSeries->GetStartReminder())) {
             $errorMessage->AppendLine(Resources::GetInstance()->GetString('InvalidStartReminderTime'));
         }
     }
     if ($reservationSeries->GetEndReminder()->Enabled()) {
         if (!$this->minutesValid($reservationSeries->GetEndReminder())) {
             $errorMessage->AppendLine(Resources::GetInstance()->GetString('InvalidEndReminderTime'));
         }
     }
     $message = $errorMessage->ToString();
     if (strlen($message) > 0) {
         return new ReservationRuleResult(false, $message);
     }
     return new ReservationRuleResult();
 }
コード例 #2
0
 /**
  * @param ReservationSeries $reservationSeries
  * @return int newly created series_id
  */
 private function InsertSeries(ReservationSeries $reservationSeries)
 {
     $database = ServiceLocator::GetDatabase();
     $insertReservationSeries = new AddReservationSeriesCommand(Date::Now(), $reservationSeries->Title(), $reservationSeries->Description(), $reservationSeries->RepeatOptions()->RepeatType(), $reservationSeries->RepeatOptions()->ConfigurationString(), ReservationTypes::Reservation, $reservationSeries->StatusId(), $reservationSeries->UserId(), $reservationSeries->GetAllowParticipation());
     $reservationSeriesId = $database->ExecuteInsert($insertReservationSeries);
     $reservationSeries->WithSeriesId($reservationSeriesId);
     $insertReservationResource = new AddReservationResourceCommand($reservationSeriesId, $reservationSeries->ResourceId(), ResourceLevel::Primary);
     $database->Execute($insertReservationResource);
     foreach ($reservationSeries->AdditionalResources() as $resource) {
         $insertReservationResource = new AddReservationResourceCommand($reservationSeriesId, $resource->GetResourceId(), ResourceLevel::Additional);
         $database->Execute($insertReservationResource);
     }
     foreach ($reservationSeries->Accessories() as $accessory) {
         $insertAccessory = new AddReservationAccessoryCommand($accessory->AccessoryId, $accessory->QuantityReserved, $reservationSeriesId);
         $database->Execute($insertAccessory);
     }
     foreach ($reservationSeries->AttributeValues() as $attribute) {
         $insertAttributeValue = new AddAttributeValueCommand($attribute->AttributeId, $attribute->Value, $reservationSeriesId, CustomAttributeCategory::RESERVATION);
         $database->Execute($insertAttributeValue);
     }
     foreach ($reservationSeries->AddedAttachments() as $attachment) {
         $this->AddReservationAttachment($attachment);
     }
     if ($reservationSeries->GetStartReminder()->Enabled()) {
         $reminder = $reservationSeries->GetStartReminder();
         $insertAccessory = new AddReservationReminderCommand($reservationSeriesId, $reminder->MinutesPrior(), ReservationReminderType::Start);
         $database->Execute($insertAccessory);
     }
     if ($reservationSeries->GetEndReminder()->Enabled()) {
         $reminder = $reservationSeries->GetEndReminder();
         $insertAccessory = new AddReservationReminderCommand($reservationSeriesId, $reminder->MinutesPrior(), ReservationReminderType::End);
         $database->Execute($insertAccessory);
     }
     return $reservationSeriesId;
 }