예제 #1
0
 /**
  * @param Credential $credential
  */
 private function saveOrUpdateCredential(Credential $credential, $imageUrl)
 {
     $dbCredential = $this->dbHelper->getCredentialBySlug($credential->getSlug());
     $em = $this->getManager();
     if (!$dbCredential) {
         if ($this->doCreate()) {
             $this->out("New Credential - " . $credential->getName());
             if ($this->doModify()) {
                 $em->persist($credential);
                 $em->flush();
                 $this->dbHelper->uploadCredentialImageIfNecessary($imageUrl, $credential);
             }
         }
     } else {
         // Update the credential
         $changedFields = $this->dbHelper->changedFields($this->credentialFields, $credential, $dbCredential);
         if (!empty($changedFields) && $this->doUpdate()) {
             $this->out("UPDATE CREDENTIAL - " . $dbCredential->getName());
             $this->outputChangedFields($changedFields);
             if ($this->doModify()) {
                 $em->persist($dbCredential);
                 $em->flush();
                 $this->dbHelper->uploadCredentialImageIfNecessary($imageUrl, $dbCredential);
             }
         }
     }
 }