function changeUserProfileInfoModel($infoForm, $userId = NULL)
 {
     $formObjRaw = new FormDTO(CHANGE_SETTINGS_FORM, $infoForm);
     $responseDTO = new ResponseDTO(CHANGE_SETTINGS_FORM);
     try {
         $formDataObj = $formObjRaw->getFormData();
         $validator = new FormValidator(CHANGE_SETTINGS_FORM, $formDataObj);
         $validationError = $validator->checkAll();
         if (sizeof($validationError) == 0) {
             $birthday = $formDataObj[CHANGE_SETTINGS_FORM . YEAR];
             $userLogged = SessionUtils::getUserLogged();
             if (!is_null($birthday)) {
                 $birthday = $formDataObj[CHANGE_SETTINGS_FORM . YEAR] . "-" . $formDataObj[CHANGE_SETTINGS_FORM . MONTH] . "-" . $formDataObj[CHANGE_SETTINGS_FORM . DAY];
             }
             $personDAO = new PersonDAO();
             $userDAO = new UserDAO();
             if (is_null($userId)) {
                 $userId = $userLogged->getUserId();
             }
             $userDTO = $userDAO->getUserInfo($userId);
             $updateUserInfo = new PersonDTO($userDTO->getPersonId(), $formDataObj[CHANGE_SETTINGS_FORM . NAME], $formDataObj[CHANGE_SETTINGS_FORM . SURNAME], $formDataObj[CHANGE_SETTINGS_FORM . GENDER], $birthday, $formDataObj[CHANGE_SETTINGS_FORM . EDUCATION], $formDataObj[CHANGE_SETTINGS_FORM . JOB], $formDataObj[CHANGE_SETTINGS_FORM . DESCRIPTION], $formDataObj[CHANGE_SETTINGS_FORM . RELATIONSHIP], $formDataObj[CHANGE_SETTINGS_FORM . ORIENTATION]);
             $personDTO = $personDAO->updateProfileInfo($updateUserInfo);
             DataModelUtils::notifyAction(NULL, CHANGE_SETTINGS_FORM);
             return $personDTO;
         } else {
             if (array_key_exists(EDUCATION, $validationError)) {
                 $responseDTO->setErrField(EDUCATION, $validationError[EDUCATION]);
             }
             if (array_key_exists(DESCRIPTION, $validationError)) {
                 $responseDTO->setErrField(DESCRIPTION, $validationError[DESCRIPTION]);
             }
             if (array_key_exists(JOB, $validationError)) {
                 $responseDTO->setErrField(JOB, $validationError[JOB]);
             }
             if (array_key_exists(NAME, $validationError)) {
                 $responseDTO->setErrField(NAME, $validationError[NAME]);
             }
             if (array_key_exists(SURNAME, $validationError)) {
                 $responseDTO->setErrField(SURNAME, $validationError[SURNAME]);
             }
         }
         return $responseDTO;
     } catch (PDOException $pdoe) {
         throw $pdoe;
     } catch (UserNotAuthenticatedExceptionDTO $authExp) {
         throw $authExp;
     } catch (Exception $e) {
         throw $e;
     }
 }