/** * @param ICommunityMember $primary_account * @param ICommunityMember $foreign_account * @return INotMyAccountAction */ public function build(ICommunityMember $primary_account, ICommunityMember $foreign_account) { $action = new NotMyAccountAction(); $action->PrimaryAccountID = $primary_account->getIdentifier(); $action->ForeignAccountID = $foreign_account->getIdentifier(); return $action; }
public function mergeAccount(ICommunityMember $current_member, $token, array $merge_data, IMergeAccountBulkQueryFactory $query_factory) { $member_repository = $this->member_repository; $merge_request_repository = $this->merge_request_repository; $delete_dupe_member_factory = $this->delete_dupe_member_factory; $delete_dupe_member_repository = $this->delete_dupe_member_repository; $nominations_repository = $this->nominations_repository; $query_registry = $this->query_registry; return $this->tx_manager->transaction(function () use($current_member, $token, $merge_data, $member_repository, $merge_request_repository, $delete_dupe_member_factory, $delete_dupe_member_repository, $nominations_repository, $query_factory, $query_registry) { $request = $merge_request_repository->findByConfirmationToken($token); if (is_null($request)) { throw new NotFoundEntityException('DupeMemberMergeRequest', sprintf("token %s", $token)); } if ($request->isVoid()) { throw new DuperMemberActionRequestVoid(); } $dupe_account = $request->getDupeAccount(); $current_account = $member_repository->getById($request->getPrimaryAccount()->getIdentifier()); if ($dupe_account->getEmail() != $current_member->getEmail()) { throw new AccountActionBelongsToAnotherMemberException(); } $request->doConfirmation($token); //merge data //we cant change email at this stage, we need to delete the dup account first... // merge gerrit users foreach ($dupe_account->GerritUsers() as $gerrit_user) { $current_account->addGerritUser($gerrit_user->AccountID, $gerrit_user->Email); } if (isset($merge_data['first_name']) && isset($merge_data['surname'])) { $current_account->updateCompleteName($merge_data['first_name'], $merge_data['surname']); } if (isset($merge_data['second_email'])) { $current_account->updateSecondEmail($merge_data['second_email']); } if (isset($merge_data['third_email'])) { $current_account->updateThirdEmail($merge_data['third_email']); } $current_account->updatePersonalInfo($merge_data['shirt_size'], $merge_data['statement_interest'], $merge_data['bio'], $merge_data['gender'], $merge_data['food_preference'], $merge_data['other_food']); $current_account->updateProjects($merge_data['projects'], $merge_data['other_project']); $current_account->updateSocialInfo($merge_data['irc_handle'], $merge_data['twitter_name'], $merge_data['linkedin_profile']); $current_account->updateAddress($merge_data['address'], $merge_data['suburb'], $merge_data['state'], $merge_data['postcode'], $merge_data['city'], $merge_data['country']); $current_account->updateProfilePhoto($merge_data['photo']); $query = $query_factory->buildMergeProfileBulkQuery($current_account, $dupe_account); $query_registry->addBulkQuery($query); // candidate if ($dupe_account->isCandidate()) { $current_candidate = $dupe_account->getCurrentCandidate(); $current_candidate->updateMember($current_account); //update candidate nominations $query = $query_factory->buildMergeCandidateBulkQuery($current_account, $dupe_account); $query_registry->addBulkQuery($query); } //speaker if ($dupe_account->isSpeaker()) { $query = $query_factory->buildMergeSpeakerBulkQuery($current_account, $dupe_account); $query_registry->addBulkQuery($query); } if ($dupe_account->isMarketPlaceAdmin()) { $query = $query_factory->buildMergeMarketPlaceAdminBulkQuery($current_account, $dupe_account); $query_registry->addBulkQuery($query); } if ($dupe_account->isCompanyAdmin()) { $query = $query_factory->buildMergeCompanyAdminBulkQuery($current_account, $dupe_account); $query_registry->addBulkQuery($query); } if ($dupe_account->isAttendee()) { $query = $query_factory->buildMergeAttendeeBulkQuery($current_account, $dupe_account); $query_registry->addBulkQuery($query); } if ($dupe_account->hasSurveys()) { $query = $query_factory->buildMergeSurveysBulkQuery($current_account, $dupe_account); $query_registry->addBulkQuery($query); } $current_member->logOut(); $deleted = $delete_dupe_member_factory->build($current_member); $member_repository->delete($current_member); $delete_dupe_member_repository->add($deleted); if (isset($merge_data['email'])) { $query = $query_factory->buildMergeEmail($current_account, $merge_data['email']); $query_registry->addBulkQuery($query, 'post'); } return $request; }); }
/** * @param ICommunityMember $member * @return void */ public function associateMember(ICommunityMember $member) { $this->MemberID = $member->getIdentifier(); //$this->RegistrationRequestID = 0; }
/** * @param ICommunityMember $primary_account Primary Account * @param ICommunityMember $dupe_account Account to merge with * @return IBulkQuery */ public function buildMergeAttendeeBulkQuery(ICommunityMember $primary_account, ICommunityMember $dupe_account) { $query = new AttendeeBulkQuery(); $params = array('primary_id' => $primary_account->getIdentifier(), 'dupe_id' => $dupe_account->getIdentifier()); $query->addParams($params); return $query; }
/** * @param ICommunityMember $member * @return void */ public function associateMember(ICommunityMember $member) { $this->MemberID = $member->getIdentifier(); }
/** * @param ICommunityMember $member * @return $this */ public function assignOwner(ICommunityMember $member) { $this->OwnerID = $member->getIdentifier(); AssociationFactory::getInstance()->getMany2OneAssociation($this, 'Owner')->setTarget($member); }
/** * @param ICommunityMember $primary_account * @param string $newEmail * @return IBulkQuery */ public function buildMergeEmail(ICommunityMember $primary_account, $newEmail) { $query = new MergeEmailBulkQuery(); $query->addParams(array('primary_id' => $primary_account->getIdentifier(), 'email' => $newEmail)); return $query; }