/** * @param int $userId * @param UpdateUserRequest $request * @param WebServiceUserSession $session * @return UserControllerResult */ public function Update($userId, $request, $session) { $errors = $this->requestValidator->ValidateUpdateRequest($userId, $request); if (!empty($errors)) { return new UserControllerResult(null, $errors); } $userService = $this->serviceFactory->CreateAdmin(); $extraAttributes = array(UserAttribute::Phone => $request->phone, UserAttribute::Organization => $request->organization, UserAttribute::Position => $request->position); $customAttributes = array(); foreach ($request->GetCustomAttributes() as $attribute) { $customAttributes[] = new AttributeValue($attribute->attributeId, $attribute->attributeValue); } $userService->UpdateUser($userId, $request->userName, $request->emailAddress, $request->firstName, $request->lastName, $request->timezone, $extraAttributes); $userService->ChangeAttributes($userId, $customAttributes); return new UserControllerResult($userId); }