예제 #1
0
 /**
  * @param array $data
  * @return IJob
  */
 public function addJob(array $data)
 {
     $this_var = $this;
     $validator_factory = $this->validator_factory;
     $repository = $this->jobs_repository;
     $factory = $this->factory;
     return $this->tx_manager->transaction(function () use($this_var, $factory, $validator_factory, $data, $repository) {
         $validator = $validator_factory->buildValidatorForJob($data);
         if ($validator->fails()) {
             throw new EntityValidationException($validator->messages());
         }
         $job = new JobPage();
         $job->registerMainInfo($factory->buildJobMainInfo($data));
         $job->registerPostedDate($data['posted_date']);
         $locations = $factory->buildJobLocations($data);
         $job->clearLocations();
         foreach ($locations as $location) {
             $job->addLocation($location);
         }
         $job_id = $repository->add($job);
         return $job_id;
     });
 }
예제 #2
0
 /**
  * @param IJobRegistrationRequest $request
  * @return IJob
  */
 public function buildJob(IJobRegistrationRequest $request)
 {
     $job = new JobPage();
     $job->JobPostedDate = $request->PostDate;
     $job->JobCompany = $request->CompanyName;
     $job->JobCompany = $request->CompanyName;
     $job->ExpirationDate = $request->ExpirationDate;
     $job->Content = $request->Description;
     $job->Title = $request->Title;
     $job->JobMoreInfoLink = $request->Url;
     $job->JobInstructions2Apply = $request->Instructions2Apply;
     $job->LocationType = $request->LocationType;
     foreach ($request->getLocations() as $location) {
         $job->addLocation($location);
     }
     return $job;
 }