public function create($pdata)
 {
     $data = array();
     $data['isActive'] = $pdata['isActive'];
     $data['profileUpdated'] = $pdata['profileUpdated'];
     $data['city'] = $pdata['city'];
     $data['currency'] = $pdata['currency'];
     $data['createdTime'] = new \DateTime('now');
     $data['lastLogin'] = new \DateTime('now');
     $data['email'] = $pdata['email'];
     $data['firstName'] = $pdata['firstname'];
     $data['lastName'] = $pdata['lastname'];
     $data['username'] = $pdata['username'];
     $data['password'] = $pdata['password'];
     $data['phone'] = $pdata['phone'];
     $data['gender'] = $pdata['gender'];
     $entityManager = $this->getEntityManager();
     $data['country'] = $entityManager->getRepository('User\\Entity\\Country')->findOneBy(array('id' => $pdata['country']));
     $userExist = $entityManager->getRepository('User\\Entity\\User')->findOneBy(array('email' => $pdata['email']));
     if ($userExist) {
         return new JsonModel(['success' => 'failed', 'msg' => '']);
     } else {
         $user = new User();
         $user->setData($data);
         $user->save($entityManager);
         $user->createFreelancer($this, $data, $entityManager, $pdata['lang_code']);
         $freelancer = $user->getFreelancer();
         $tmp = array('Resources' => $pdata['resources'], 'DesktopCatTools' => $pdata['desktopcattools'], 'DesktopOperatingSystems' => $pdata['desktopoperatingsystems'], 'InterpretingSpecialisms' => $pdata['interpretingspecialisms'], 'TranslationCatTools' => $pdata['translationcattools'], 'TranslationSpecialisms' => $pdata['translationspecialisms']);
         $freelancer->updateData($tmp, $entityManager);
         $freelancer->save($entityManager);
         $ret_data = $user->getData();
         // Set Translation Price
         foreach ($pdata['translationPrices'] as $k => $v) {
             $translationPrice = array('user' => $user, 'sourceLanguage' => $entityManager->getRepository('User\\Entity\\Language')->findOneBy(array('id' => $v['sourceLanguage']['id'])), 'targetLanguage' => $entityManager->getRepository('User\\Entity\\Language')->findOneBy(array('id' => $v['targetLanguage']['id'])), 'price' => $v['price']);
             $pTranslationPrice = new UserTranslationPrice();
             $pTranslationPrice->setData($translationPrice);
             $pTranslationPrice->save($entityManager);
         }
         // Set Desktop Prices
         foreach ($pdata['desktopPrices'] as $k => $v) {
             $desktopPrice = array('user' => $user, 'language' => $entityManager->getRepository('User\\Entity\\Language')->findOneBy(array('id' => $v['language']['id'])), 'software' => $entityManager->getRepository('User\\Entity\\DesktopSoftware')->findOneBy(array('id' => $v['language']['id'])), 'priceMac' => $v['priceMac'], 'pricePc' => $v['pricePc'], 'priceHourMac' => $v['priceHourMac'], 'priceHourPc' => $v['priceHourPc']);
             $pDesktopPrice = new UserDesktopPrice();
             $pDesktopPrice->setData($desktopPrice);
             $pDesktopPrice->save($entityManager);
         }
         // Set Interpreting Price
         foreach ($pdata['interpretingPrices'] as $k => $v) {
             $interpretingPrice = array('user' => $user, 'sourceLanguage' => $entityManager->getRepository('User\\Entity\\Language')->findOneBy(array('id' => $v['sourceLanguage']['id'])), 'targetLanguage' => $entityManager->getRepository('User\\Entity\\Language')->findOneBy(array('id' => $v['targetLanguage']['id'])), 'service' => $entityManager->getRepository('User\\Entity\\InterpretingService')->findOneBy(array('id' => $v['service']['id'])), 'priceDay' => $v['priceDay'], 'priceHalfDay' => $v['priceHalfDay']);
             $pInterpretingPrice = new UserInterpretingPrice();
             $pInterpretingPrice->setData($interpretingPrice);
             $pInterpretingPrice->save($entityManager);
         }
         return new JsonModel(['user' => $ret_data, 'success' => 'success']);
     }
     return new JsonModel(['success' => 'failed', 'msg' => 'Unknown Error']);
 }