public function onTaskComplete(TaskEvent $event)
 {
     $exp = 1;
     $this->em->getRepository('AcmeUserBundle:User')->increaseExp($event->getTask()->getUser(), $exp);
 }
 public function firstTaskAdd(TaskEvent $event)
 {
     $achievement = $this->em->getRepository('AcmeEdelaBundle:Achievement')->findOneBy(['tkey' => 'first-task-add']);
     if (!$achievement) {
         return;
     }
     if (!($userAchievement = $event->getUser()->getUserAchievements()->matching(Criteria::create()->where(Criteria::expr()->eq('achievement', $achievement)))->first())) {
         $userAchievement = new UserAchievement();
         $userAchievement->setProgress(100)->setUser($event->getUser())->setAchievement($achievement);
         $this->em->persist($userAchievement);
         $this->em->getRepository('AcmeUserBundle:User')->increaseExp($event->getUser(), $achievement->getExpReward());
         $this->em->persist($event->getUser());
         $this->em->persist($notification);
         $this->em->flush();
     }
 }