Пример #1
0
 /**
  * @param Person    $person
  * @param Service[] $serviceList
  *
  * @return mixed
  */
 private function prepareSeviceList($person, $serviceList)
 {
     $result = [];
     foreach ($serviceList as $service) {
         $personService = PersonServiceRepository::getByPersonAndServiceId($person, $service);
         if ($personService) {
             $result[$personService->serviceId()] = $personService;
         }
     }
     return $result;
 }
 /**
  * @param GetServicesByUserTypeCommand $aCommand
  *
  * @return \domain\person\entities\Person
  */
 public function handle(SavePersonServiceCommand $aCommand)
 {
     /**
      * TODO: сделать, чтобы присваивания делала факторка
      */
     $personService = PersonServiceRepository::getByPersonAndServiceId($aCommand->person(), $aCommand->service());
     if (!$personService) {
         $personService = (new PersonServiceFactory())->createEmpty();
         $personService->setPersonId($aCommand->person()->id());
         $personService->setServiceId($aCommand->service()->id());
     }
     $personService->setHourse($aCommand->hours());
     $personService->setCost($aCommand->cost());
     $this->personRepository->save($personService);
 }