예제 #1
0
 /**
  * @param array $data
  * @return ISummit
  */
 public function createSummit(array $data)
 {
     $this_var = $this;
     $repository = $this->summit_repository;
     $factory = $this->summit_factory;
     return $this->tx_manager->transaction(function () use($this_var, $factory, $data, $repository) {
         $summit = new Summit();
         $summit->registerMainInfo($factory->buildMainInfo($data));
         if ($repository->isDuplicated($summit)) {
             throw new EntityAlreadyExistsException('Summit', sprintf('Name %s', $summit->getName()));
         }
         $repository->add($summit);
         return $summit;
     });
 }