/**
  *
  */
 public function testCreateTraining()
 {
     $factory = new MarketplaceFactory();
     $training = $factory->buildTraining();
     $training->setName('test training');
     $training->setDescription('test training description');
     $training->activate();
     $service = new TrainingServiceManager($repository = new SapphireTrainingServiceRepository());
     $repository->add($training);
     $courses = $service->getCoursesByDate($training->getIdentifier(), DateTimeUtils::getCurrentDate());
 }
 /**
  * @param int $training_id
  * @param string $company_url_segment
  * @return array
  * @throws Exception
  */
 public function getCompanyTraining($training_id, $company_url_segment)
 {
     if (empty($company_url_segment)) {
         throw new Exception("Invalid Company");
     }
     //@todo: remove dataobjects dependencies
     $company = Company::get()->filter('URLSegment', $company_url_segment)->first();
     $training = empty($training_id) ? null : TrainingService::get()->byID($training_id);
     if (!$company) {
         throw new Exception("Invalid Company");
     }
     if (!$training) {
         //get default program
         $training = $company->getDefaultTraining();
     }
     //check if program belongs to selected company
     $training_company = $training->Company();
     if ($training_company->getIdentifier() != $company->getIdentifier()) {
         //if not , get default program
         $training = $company->getDefaultTraining();
     }
     if (!$this->training_manager->isActive($training->getIdentifier())) {
         return Security::permissionFailure($this->controller, "non active training!.");
     }
     $courses = $this->training_manager->getCoursesByDate($training->getIdentifier(), DateTimeUtils::getCurrentDate());
     $courses_vm = new ArrayList();
     foreach ($courses as $course) {
         $course_dto = new CourseDTO($course->getIdentifier(), $course->getName(), $course->getDescription(), $course->getTraining()->getIdentifier(), null, null, null, $course->level()->Level, $course->isOnline(), null, null, null, null, null, $course->getOnlineLink());
         $locations_dto = $this->course_repository->getLocationsByDate($course->getIdentifier(), DateTimeUtils::getCurrentDate());
         $locations_vm = new ArrayList();
         foreach ($locations_dto as $location_dto) {
             $locations_vm->push(new CourseLocationViewModel($location_dto));
         }
         $courses_vm->push(new CourseViewModel($course_dto, $locations_vm, $course->projects()));
     }
     $res = array('Company' => $company, 'Training' => $training, 'Courses' => $courses_vm, 'Slug' => $training->getSlug());
     return $res;
 }
 public function CompanyCombo()
 {
     $source = array();
     $result = $this->course_company_query->handle(new OpenStackImplementationNamesQuerySpecification(DateTimeUtils::getCurrentDate()));
     foreach ($result->getResult() as $dto) {
         $source[$dto->getValue()] = $dto->getValue();
     }
     $ddl = new DropdownField('company-term', $title = null, $source);
     $ddl->setEmptyString('-- Show All --');
     return $ddl;
 }
 public function getCurrentAffiliations()
 {
     $current_date = DateTimeUtils::getCurrentDate();
     return $this->owner->Affiliations(" ( Current=1 OR EndDate > '{$current_date}') ", "Current DESC, StartDate DESC, EndDate DESC,LastEdited DESC");
 }