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