public static function run()
 {
     $action = array_key_exists('action', $_SESSION) ? $_SESSION['action'] : "";
     $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : "";
     switch ($action) {
         case "create":
             self::newSkillAssoc();
             break;
         case "show":
             if ($arguments == 'all') {
                 $_SESSION['skillAssocs'] = SkillAssocsDB::getSkillAssocsBy();
                 $_SESSION['headertitle'] = "botspace skill associations";
                 SkillAssocView::showAll();
             } else {
                 $skillAssocs = SkillAssocsDB::getSkillAssocsBy('skillAssocId', $arguments);
                 $_SESSION['skillAssoc'] = $skillAssocs[0];
                 self::show();
             }
             break;
         case "update":
             echo "Update";
             self::updateSkillAssoc();
             break;
         default:
     }
 }
 public function testGetSkillAssocsByUserDataId()
 {
     $myDB = DBMaker::create('botspacetest');
     Database::clearDB();
     $db = Database::getDB('botspacetest', 'C:\\xampp\\myConfig.ini');
     $testUserDataId = 3;
     $skillAssocs = SkillAssocsDB::getSkillAssocsBy('userDataId', $testUserDataId);
     foreach ($skillAssocs as $skillAssoc) {
         $this->assertEquals($skillAssoc->getUserDataId(), $testUserDataId, 'All returned SkillAssocs should have the specified userDataId');
     }
 }
 public static function show()
 {
     $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : 0;
     $userData = $_SESSION['userData'];
     if (!is_null($userData)) {
         $_SESSION['userData'] = $userData;
         $skillAssocs = SkillAssocsDB::getSkillAssocsBy('userDataId', $userData->getUserDataId());
         $_SESSION['skillAssocs'] = $skillAssocs;
         UserDataView::show();
     } else {
         HomeView::show();
     }
 }
 public static function setProfileDataForUser($userId)
 {
     $retVal = false;
     if (empty($userId) || !is_numeric($userId)) {
         return $retVal;
     }
     $user = null;
     $userData = null;
     $skillAssocs = null;
     $userRobots = null;
     $users = UsersDB::getUsersBy('userId', $userId);
     if (count($users) > 0) {
         $user = $users[0];
         if ($user->getErrorCount() != 0) {
             return $retVal;
         }
         $userDataArray = UserDataDB::getUserDataBy('userId', $userId);
         if (count($userDataArray) > 0) {
             $userData = $userDataArray[0];
         }
         if ($userData->getErrorCount() != 0) {
             return $retVal;
         }
         $skillAssocs = SkillAssocsDB::getSkillAssocsBy('userDataId', $userData->getUserDataId());
         foreach ($skillAssocs as $skillAssoc) {
             if ($skillAssoc->getErrorCount() != 0) {
                 return $retVal;
             }
         }
         $robotAssocs = RobotAssocsDB::getRobotAssocsBy('creatorId', $userData->getUserDataId());
         $userRobots = array();
         foreach ($robotAssocs as $robotAssoc) {
             $robotArray = RobotDataDB::getRobotDataBy('robotId', $robotAssoc->getRobotId());
             if (count($robotArray) > 0) {
                 array_push($userRobots, $robotArray[0]);
             }
         }
         $_SESSION['user'] = $user;
         $_SESSION['userData'] = $userData;
         $_SESSION['skillAssocs'] = $skillAssocs;
         $_SESSION['userRobots'] = $userRobots;
         $retVal = true;
     }
     return $retVal;
 }
 public static function show()
 {
     $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : 0;
     $user = $_SESSION['user'];
     if (!is_null($user)) {
         $_SESSION['user'] = $user;
         $userDataArray = UserDataDB::getUserDataBy('userId', $user->getUserId());
         $userData = $userDataArray[0];
         $_SESSION['userData'] = $userData;
         $skillAssocs = SkillAssocsDB::getSkillAssocsBy('userDataId', $userData->getUserDataId());
         $_SESSION['skillAssocs'] = $skillAssocs;
         // The robot data section might look something like this:
         //$robotDataArray = RobotDataDB::getRobotDataBy('creator', $user->getUserId());
         //$_SESSION['robotData'] = $robotDataArray;
         UserView::show();
     } else {
         HomeView::show();
     }
 }
 public static function show()
 {
     $arguments = array_key_exists('arguments', $_SESSION) ? $_SESSION['arguments'] : 0;
     $userData = $_SESSION['userData'];
     if (!is_null($userData)) {
         $_SESSION['userData'] = $userData;
         $skillAssocs = SkillAssocsDB::getSkillAssocsBy('userDataId', $userData->getUserDataId());
         $skills = array();
         foreach ($skillAssocs as $skillAssoc) {
             $skillsArray = SkillsDB::getSkillsBy('skillId', $skillAssoc->getSkillId());
             $skill = $skillsArray[0];
             array_push($skills, $skill);
         }
         //$_SESSION['skillAssocs'] = $skillAssocs;
         $_SESSION['skills'] = $skills;
         UserDataView::show();
     } else {
         HomeView::show();
     }
 }
 public static function getUserDataArray($rowSets)
 {
     $usersData = array();
     if (!empty($rowSets)) {
         foreach ($rowSets as $userDataRow) {
             $userData = new UserData($userDataRow);
             $userDataId = $userDataRow['userDataId'];
             // The UserData constructor does not set the userDataId for
             // a new UserData object; the UserData table takes care of that
             // during insertion. Here we manually set the userDataId to
             // complete the UserData object.
             $userData->setUserDataId($userDataId);
             // We should also get the user's associated skills
             $skillAssocs = SkillAssocsDB::getSkillAssocsBy('userDataId', $userDataId);
             $skill_areas = array();
             foreach ($skillAssocs as $skillAssoc) {
                 $skillId = $skillAssoc->getSkillId();
                 // skillIds start from 1, however array-indexing
                 // starts at 0; so we use an offset of -1 when retrieving
                 // values from $SKILL_AREAS
                 $skill_name = Skill::$SKILL_AREAS[$skillId - 1];
                 array_push($skill_areas, $skill_name);
             }
             $userData->setSkillAreas($skill_areas);
             array_push($usersData, $userData);
         }
     }
     return $usersData;
 }
 public function testInsertDuplicateSkillAssoc()
 {
     $myDB = DBMaker::create('botspacetest');
     Database::clearDB();
     $db = Database::getDB('botspacetest', 'C:\\xampp\\myConfig.ini');
     $beforeCount = count(SkillAssocsDB::getSkillAssocsBy());
     $skillAssocCopy = SkillAssocsDB::getSkillAssocsRowsBy('skillAssocId', 4);
     $skillAssocCopy = $skillAssocCopy[0];
     $s1 = new SkillAssocs($skillAssocCopy);
     $dupSkillAssoc = SkillAssocsDB::addSkillAssoc($s1);
     $afterCount = count(SkillAssocsDB::getSkillAssocsBy());
     $this->assertTrue(!empty($dupSkillAssoc->getError('skillAssocId')) && strcmp(Messages::getError('SKILL_ASSOC_INVALID'), $dupSkillAssoc->getError('skillAssocId')) == 0, 'It should have a skillAssocId error if the skill association is a duplicate');
     $this->assertEquals($afterCount, $beforeCount, 'There should be no additional skill associations entries after the insertion attempt');
 }