/** * Create skill from data of linkedinSkill * * @param LinkedinSkill $linkedinSkill * @param bool|false $mapSkill * @return Skill */ public static function createFromLinkedinSkill(LinkedinSkill $linkedinSkill, $mapSkill = false) { $skill = new Skill(); $skill->setName($linkedinSkill->getName()); if ($mapSkill) { $linkedinSkill->setSkill($skill); } return $skill; }
/** * Get linkedinSkill from database, if not exist, create new one * * @param LinkedinSkill $linkedinSkill * @param bool $flush Insert to database or not * @return array */ public function getOrCreate(LinkedinSkill $linkedinSkill, $flush = true) { $linkedinSkillResult = $this->findOneBy(array('name' => $linkedinSkill->getName())); if (empty($linkedinSkillResult)) { $skillResult = Skill::createFromLinkedinSkill($linkedinSkill, true); $this->persist($skillResult, $flush); $linkedinSkillResult = $this->persist($linkedinSkill, $flush); } else { /** @var SkillRepository $skillRepository */ $skillRepository = $this->getEntityManager()->getRepository(ClassPath::SKILL); $skillResult = $skillRepository->getFromLinkedinSkill($linkedinSkillResult); } return array('skill' => $skillResult, 'linkedinSkill' => $linkedinSkillResult); }
public function addNumberForSkillOfFacebookUser($idFB, Skill $skill, $count, $score) { //Create Neo4j query return $this->getOneByQuery(sprintf('MATCH(f:FacebookUser)<-[:HAS_SOCIAL]-(u:User)-[r:HAS_SKILL]->(s:Skill) WHERE ID(f) = %s AND ID(s) = %s SET r.score = r.score + %s, r.count = r.count + %s RETURN u, s', $idFB, $skill->getId(), $count, $score)); }