コード例 #1
0
ファイル: SchedulePeriodRule.php プロジェクト: Trideon/gigolo
 /**
  * @param ReservationSeries $reservationSeries
  * @return ReservationRuleResult
  */
 public function Validate($reservationSeries)
 {
     $layout = $this->repository->GetLayout($reservationSeries->Resource()->GetScheduleId(), new ScheduleLayoutFactory($this->session->Timezone));
     $startDate = $reservationSeries->CurrentInstance()->StartDate();
     $startPeriod = $layout->GetPeriod($startDate);
     $endDate = $reservationSeries->CurrentInstance()->EndDate();
     $endPeriod = $layout->GetPeriod($endDate);
     $errors = new StringBuilder();
     if ($startPeriod == null || !$startPeriod->IsReservable() || !$startPeriod->BeginDate()->Equals($startDate)) {
         $errors->AppendLine(Resources::GetInstance()->GetString('InvalidStartSlot'));
     }
     if ($endPeriod == null || !$endPeriod->BeginDate()->Equals($endDate)) {
         $errors->AppendLine(Resources::GetInstance()->GetString('InvalidEndSlot'));
     }
     $errorMessage = $errors->ToString();
     return new ReservationRuleResult(strlen($errorMessage) == 0, $errorMessage);
 }
コード例 #2
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();
 }
コード例 #3
0
 /**
  * @param ReservationSeries $reservationSeries
  * @return ReservationRuleResult
  */
 public function Validate($reservationSeries)
 {
     $resources = Resources::GetInstance();
     $errorMessage = new StringBuilder();
     $result = $this->attributeService->Validate(CustomAttributeCategory::RESERVATION, $reservationSeries->AttributeValues());
     $isValid = $result->IsValid();
     foreach ($result->Errors() as $error) {
         $errorMessage->AppendLine($error);
     }
     if (!$isValid) {
         $errorMessage->PrependLine($resources->GetString('CustomAttributeErrors'));
     }
     return new ReservationRuleResult($isValid, $errorMessage->ToString());
 }
コード例 #4
0
 /**
  * @param ReservationSeries $reservationSeries
  * @return ReservationRuleResult
  */
 public function Validate($reservationSeries)
 {
     $errorMessage = new StringBuilder();
     foreach ($reservationSeries->AllResources() as $resource) {
         if (!$resource->HasMaxParticipants()) {
             continue;
         }
         foreach ($reservationSeries->Instances() as $instance) {
             $numberOfParticipants = count($instance->Participants());
             Log::Debug('ResourceParticipationRule Resource=%s,InstanceId=%s,MaxParticipants=%s,CurrentParticipants=%s', $resource->GetName(), $instance->ReservationId(), $resource->GetMaxParticipants(), $numberOfParticipants);
             if ($numberOfParticipants > $resource->GetMaxParticipants()) {
                 $errorMessage->AppendLine(Resources::GetInstance()->GetString('MaxParticipantsError', array($resource->GetName(), $resource->GetMaxParticipants())));
                 continue;
             }
         }
     }
     $message = $errorMessage->ToString();
     if (strlen($message) > 0) {
         return new ReservationRuleResult(false, $message);
     }
     return new ReservationRuleResult();
 }
コード例 #5
0
 /**
  * @param array $conflicts
  * @return string
  */
 protected function GetErrorString($conflicts)
 {
     $errorString = new StringBuilder();
     $errorString->Append(Resources::GetInstance()->GetString('ConflictingAccessoryDates'));
     $errorString->AppendLine();
     $format = Resources::GetInstance()->GetDateFormat(ResourceKeys::DATE_GENERAL);
     foreach ($conflicts as $conflict) {
         $errorString->Append(sprintf('(%s) %s', $conflict['date']->ToTimezone($this->timezone)->Format($format), $conflict['name']));
         $errorString->AppendLine();
     }
     return $errorString->ToString();
 }
コード例 #6
0
ファイル: CodeGen.php プロジェクト: JUkhan/jwt_php
 private function genAllControllers()
 {
     $list = array_unique($this->mControllers);
     $sb = new StringBuilder();
     $directoryName = "Components";
     foreach ($list as $item) {
         if (JwtUtil::fileExists($this->root . sprintf("Scripts/Components/%s/%sCtrl.js", $item, $item))) {
             $sb->AppendLine();
             $sb->AppendFormat("import %s from 'Scripts/%s/%s/%sCtrl.js';", $item, $directoryName, $item, $item);
         }
     }
     $list = array_unique($this->layoutControllers);
     $directoryName = "Layouts";
     foreach ($list as $item) {
         if (JwtUtil::fileExists($this->root . sprintf("Scripts/Layouts/%s/%sCtrl.js", $item, $item))) {
             $sb->appendLine();
             $sb->appendFormat("import %s from 'Scripts/%s/%s/%sCtrl.js';", $item, $directoryName, $item, $item);
         }
     }
     $sb->appendLine();
     $sb->appendLine();
     $sb->appendFormat("var moduleName='%s.controllers';", $this->app->Name);
     $sb->appendLine();
     $sb->appendLine();
     $sb->append("angular.module(moduleName,[])");
     $list = array_unique($this->mControllers);
     foreach ($list as $item) {
         if (JwtUtil::fileExists($this->root . sprintf("Scripts/Components/%s/%sCtrl.js", $item, $item))) {
             $sb->appendLine();
             $sb->appendFormat(".controller('%sCtrl', %s)", $item, $item);
         }
         if (JwtUtil::fileExists(sprintf($this->root . "Scripts/Components/%s/%s.css", $item, $item))) {
             $this->componentsCSS->appendFormat("@import '../Scripts/Components/%s/%s.css';", $item, $item);
             $this->componentsCSS->appendLine();
         }
     }
     $list = array_unique($this->layoutControllers);
     foreach ($list as $item) {
         if (JwtUtil::fileExists($this->root . sprintf("Scripts/Layouts/%s/%sCtrl.js", $item, $item))) {
             $sb->appendLine();
             $sb->appendFormat(".controller('%sCtrl', %s)", $item, $item);
         }
         if (JwtUtil::fileExists(sprintf($this->root . "Scripts/Layouts/%s/%s.css", $item, $item))) {
             $this->componentsCSS->appendFormat("@import '../Scripts/Layouts/%s/%s.css';", $item, $item);
             $this->componentsCSS->appendLine();
         }
     }
     $sb->append(";");
     $sb->appendLine();
     $sb->appendLine();
     $sb->append("export default moduleName;");
     JwtUtil::putContent($this->root . "Scripts/app.controllers.js", $sb->toString());
 }