public function create($data) { $person = new Person($data->first_name, $data->last_name); if (isset($data->middle_name)) { $person->setMiddleName($data->middle_name); } if (isset($data->display_name)) { $person->setDisplayName($data->display_name); } $account = new Account($person); switch ($data->status) { case 'active': $account->setStatus(AccountInterface::STATUS_ACTIVE); break; case 'inactive': $account->setStatus(AccountInterface::STATUS_INACTIVE); break; default: throw new RuntimeException('Invalid account status provided.'); } $this->entityManager->persist($person); $this->entityManager->persist($account); $this->entityManager->flush($account); return new AccountEntity($account); }
public function inviteAccount($data) { // Lookup the e-mail address: $repository = $this->entityManager->getRepository(Email::class); $accountEmail = $repository->findOneBy(['address' => $data['email']]); if ($accountEmail !== null) { return $accountEmail->getAccount(); } $person = new Person($data['first_name'], $data['last_name']); $person->setMiddleName($data['middle_name']); $emailAddress = new EmailAddress($person, EmailAddress::TYPE_WORK, $data['email']); $account = new AccountEntity($person); $account->setStatus(AccountEntity::STATUS_INVITED); $accountEmail = new Email($account, $data['email']); $accountEmail->setValidationCode(Rand::getString(32, range('a', 'z'))); $account->getEmailAddresses()->add($accountEmail); $this->entityManager->persist($person); $this->entityManager->persist($emailAddress); $this->entityManager->persist($account); $this->entityManager->flush(); return $account; }
private function populatePerson(PersonEntity $person) { $genders = [0, 1, 2, 9]; $gender = $genders[Rand::getInteger(0, count($genders) - 1)]; $person->setGender($gender); $person->setJobTitle('Software Engineer'); $person->setDepartment('Department'); if ($gender === 2) { $person->setMaidenName('Maiden name'); } $person->setNickname('Nickname'); }
public function buildPerson(Person $person) { $data = []; $data['REV'] = $person->getLastUpdated()->format(self::DATE_FORMAT); $data['KIND'] = 'individual'; switch ($person->getGender()) { case Person::GENDER_FEMALE: $data['GENDER'] = 'F'; break; case Person::GENDER_MALE: $data['GENDER'] = 'M'; break; default: break; } $data['FN'] = $person->getFullName(); $data['N'] = [$person->getFirstName(), $person->getLastName(), null, $person->getPrefix()]; //if ($person->getDateOfBirth() !== null) { // $data['BDAY'] = $person->getDateOfBirth()->format('Ymd'); //} //$data['BIRTHPLACE'] = ''; //$data['DEATHDATE'] = ''; //$data['DEATHPLACE'] = ''; //$data['IMPP:aim'] = '*****@*****.**'; if ($person->getNickname() !== null) { $data['NICKNAME'] = $person->getNickname(); } if ($person->getNotes() !== null) { $data['NOTE'] = $person->getNotes(); } //if ($person->getRole() !== null) { // $data['ROLE'] = $person->getRole(); //} //$data['TEL;TYPE=cell'] = '(123) 555-5832'; return $this->buildObject($data); }
private function extractPerson(Person $item, array &$data) { $data['type'] = 'person'; $data['gender'] = $item->getGender(); $data['first_name'] = $item->getFirstName(); $data['phonetic_first_name'] = $item->getPhoneticFirstName(); $data['middle_name'] = $item->getMiddleName(); $data['phonetic_middle_name'] = $item->getPhoneticMiddleName(); $data['last_name'] = $item->getLastName(); $data['phonetic_last_name'] = $item->getPhoneticLastName(); $data['maiden_name'] = $item->getMaidenName(); $data['suffix'] = $item->getSuffix(); $data['nickname'] = $item->getNickname(); $data['job_title'] = $item->getJobTitle(); $data['department'] = $item->getDepartment(); $data['company'] = $item->getCompany(); }
public function __construct(Person $person) { $this->id = $person->getId(); $this->firstName = $person->getFirstName(); }