/** * @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); }
/** * @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(); }
/** * @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()); }
/** * @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(); }
/** * @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(); }
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()); }