$acc = $accountDAO->getUrlAndLocation();
            $location = $acc->location;
            $url = $acc->url;
        }
        if ($accountDAO->accountNameExists((string) $formData->accountName, $url)) {
            $formErrors[] = get_string('erroraccountexists', 'block_moodletxt');
        } else {
            if ($formData->accountCtxtInstance !== TxttoolsAccount::$UK_LOCATION && $formData->accountCtxtInstance !== TxttoolsAccount::$US_LOCATION && ($formData->accountCtxtInstance !== 'URL' && $formData->accountUrl)) {
                $formErrors[] = get_string('errorinvalidlocationorurl', 'block_moodletxt');
            } else {
                $encrypter = new MoodletxtEncryption();
                $key = get_config('moodletxt', 'EK');
                $xmlController = MoodletxtOutboundControllerFactory::getOutboundController(MoodletxtOutboundControllerFactory::$CONTROLLER_TYPE_XML);
                $defaultUser = $userDAO->getUserById($formData->accountDefaultInbox);
                $txttoolsAccount = new TxttoolsAccount((string) $formData->accountName, (string) $formData->accountDescription, $defaultUser, $url, $location);
                $txttoolsAccount->setEncryptedPassword($encrypter->encrypt($key, $formData->accountPassword1, 20));
                if ($location === 'URL') {
                    $location = $xmlController->getServerLocation($txttoolsAccount);
                    $txttoolsAccount->setLocation($location);
                }
                $txttoolsAccount = $xmlController->updateAccountInfo($txttoolsAccount);
                $accountDAO->saveTxttoolsAccount($txttoolsAccount);
                redirect($CFG->wwwroot . '/blocks/moodletxt/settings_accounts.php', get_string('redirectaccountsfound', 'block_moodletxt'));
            }
        }
    } catch (MoodletxtRemoteProcessingException $ex) {
        $connErrors['remoteError'] = $ex->getCode();
    } catch (Exception $ex) {
        $connErrors['connectError'] = $ex->getCode();
    }
}
 /**
  * Takes the vanilla object returned as a database row and creates a full-fledged
  * sent message object from it, complete with dependent beans, methods, the works
  * @param stdClass $stdObject Raw database-level data object
  * @return MoodletxtOutboundMessage Constructed message object
  * @version 2015062901
  * @since 2011081101
  */
 private function convertStandardClassToBean($stdObject)
 {
     $defaultUser = new MoodletxtBiteSizedUser($stdObject->defaultuser, $stdObject->defaultusername, $stdObject->defaultfirst, $stdObject->defaultlast);
     $txttoolsAccount = new TxttoolsAccount($stdObject->txttoolsuser, $stdObject->description, $defaultUser, $stdObject->url, $stdObject->location);
     if (isset($stdObject->encrypted)) {
         $txttoolsAccount->setEncryptedPassword($stdObject->encrypted);
     }
     $messageOwner = new MoodletxtBiteSizedUser($stdObject->moodleuserid, $stdObject->moodleuser, $stdObject->firstname, $stdObject->lastname);
     $outboundMessage = new MoodletxtOutboundMessage($txttoolsAccount, $messageOwner, $stdObject->messagetext, $stdObject->timesent, $stdObject->type);
     if (isset($stdObject->scheduledfor)) {
         $outboundMessage->setScheduledTime($stdObject->scheduledfor);
     }
     if (isset($stdObject->id)) {
         $outboundMessage->setId($stdObject->id);
     }
     $eventCreated = $stdObject->fromevent == '1' ? true : false;
     $outboundMessage->setEventCreated($eventCreated);
     return $outboundMessage;
 }
 /**
  * Converts a basic object returned from the
  * Moodle DB layer into a full data type
  * @param object $standardClass DB record object
  * @return txttoolsAccount Converted acount
  * @version 2015062901
  * @since 2011042601
  */
 private function convertStandardClassToBean($standardClass)
 {
     $defaultUser = new MoodletxtBiteSizedUser($standardClass->defaultuser, $standardClass->defaultusername, $standardClass->firstname, $standardClass->lastname);
     $txttoolsAccount = new TxttoolsAccount($standardClass->username, $standardClass->description, $defaultUser, $standardClass->url, $standardClass->location, $standardClass->creditsused, $standardClass->creditsremaining, $standardClass->outboundenabled, $standardClass->inboundenabled, $standardClass->accounttype, $standardClass->lastupdate, $standardClass->id);
     $txttoolsAccount->setEncryptedPassword($standardClass->password);
     return $txttoolsAccount;
 }