public function saveRegisteredUser($lastName, $firstName, $middleName, $gender, $birthday, $homeAddress, $countryCode, $cityID, $emailAddress, $telephoneNumber, $mobileNumber, $username, $hashedPassword, $activationCode)
 {
     $connection = $this->_connection;
     $beginTrans = $connection->beginTransaction();
     $sql = "INSERT INTO accountregistereduserdetails (LastName, FirstName, MiddleName, Gender, Birthday, HomeAddress, CountryCode, CityID, Landline, MobileNumber)\n                            VALUES(:lastName, :firstName, :middleName, :gender, :birthday, :homeAddress, :countryCode, :cityID, :telephoneNumber, :mobileNumber)";
     $commandRegisteredUserDetails = $connection->createCommand($sql);
     $commandRegisteredUserDetails->bindValues(array(":lastName" => $lastName, ":firstName" => $firstName, ":middleName" => $middleName, ":gender" => $gender, ":birthday" => $birthday, ":homeAddress" => $homeAddress, ":countryCode" => $countryCode, ":cityID" => $cityID, ":telephoneNumber" => $telephoneNumber, ":mobileNumber" => $mobileNumber));
     $commandRegisteredUserDetails->execute();
     try {
         $lastInserted = $this->_connection->getLastInsertID();
         $inactiveStatus = DefaultForm::ACCOUNT_STATUS_REGISTERED_USER_INACTIVE;
         $accountTypeID = DefaultForm::ACCOUNT_TYPE_REGISTERED_USER;
         $sql = "INSERT INTO accountregisteredusers (RegisteredUserID, Username, Password, EmailAddress, AccountTypeID, Status, ActivationCode, CreatedByAccountID)\n                            VALUES(:registeredUserID, :username, :password, :emailAddress, :accountTypeID, :status, :activationCode, :createdByAccountID)";
         $commandRegisteredUser = $connection->createCommand($sql);
         $commandRegisteredUser->bindValues(array(":registeredUserID" => $lastInserted, ":username" => $username, ":password" => $hashedPassword, ":emailAddress" => $emailAddress, ":accountTypeID" => $accountTypeID, ":status" => $inactiveStatus, ":activationCode" => $activationCode, ":createdByAccountID" => $lastInserted));
         $commandRegisteredUser->execute();
         try {
             $subject = Yii::$app->params['siteName'] . " Account Registration";
             $emailMessage = DefaultForm::emailMessageRegistration($lastName, $firstName, $middleName, $lastInserted, $emailAddress, $activationCode);
             $sendEmail = DefaultForm::sendMail($emailAddress, $subject, $emailMessage);
             if ($sendEmail['status'] == DefaultForm::ERROR_CODE_NO_ERROR) {
                 $beginTrans->commit();
             } else {
                 $beginTrans->rollback();
             }
             return array('registeredUserID' => $lastInserted, 'status' => $sendEmail['status'], 'message' => $sendEmail['message']);
         } catch (PDOException $e) {
             $beginTrans->rollback();
             return array('registeredUserID' => 0, 'status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => $e);
         }
     } catch (PDOException $e) {
         $beginTrans->rollback();
         return array('registeredUserID' => 0, 'status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => $e);
     }
 }
 public function deleteAccountFromEmail($registeredUserID, $status, $emailAddress)
 {
     $activationCode = "";
     $connection = $this->_connection;
     $beginTrans = $connection->beginTransaction();
     $sql = "UPDATE accountregisteredusers SET Status = :status, ActivationCode = :activationCode WHERE RegisteredUserID = :registeredUserID";
     $command = $connection->createCommand($sql);
     $command->bindValues(array(":status" => $status, ":activationCode" => $activationCode, ":registeredUserID" => $registeredUserID));
     $rowCount = $command->execute();
     try {
         if ($rowCount == 0) {
             $status = 2;
             $message = "Unable to delete your account! Please try again.";
         } else {
             $subject = Yii::$app->params['siteName'] . " Delete Account Successful";
             $emailMessage = DefaultForm::emailMessageAccountDeleted();
             $sendEmail = DefaultForm::sendMail($emailAddress, $subject, $emailMessage);
             if ($sendEmail['status'] == DefaultForm::ERROR_CODE_NO_ERROR) {
                 $beginTrans->commit();
             } else {
                 $beginTrans->rollback();
             }
             return array('status' => $sendEmail['status'], 'message' => $sendEmail['message']);
         }
         return array('status' => $status, 'message' => $message);
     } catch (PDOException $e) {
         $beginTrans->rollback();
         return array('status' => DefaultForm::ERROR_CODE_SYSTEM_DEFAULT, 'message' => $e);
     }
 }