/**
  * @param entry $entry
  * @param DistributionProfile $distributionProfile
  * @return EntryDistribution
  */
 public static function createEntryDistribution(entry $entry, DistributionProfile $distributionProfile)
 {
     $entryDistribution = new EntryDistribution();
     $entryDistribution->setEntryId($entry->getId());
     $entryDistribution->setPartnerId($entry->getPartnerId());
     $entryDistribution->setDistributionProfileId($distributionProfile->getId());
     $entryDistribution->setStatus(EntryDistributionStatus::PENDING);
     self::assignFlavorAssets($entryDistribution, $entry, $distributionProfile);
     self::assignThumbAssets($entryDistribution, $entry, $distributionProfile);
     self::assignAssets($entryDistribution, $entry, $distributionProfile);
     $entryDistribution->save();
     // need to save before checking validations
     $validationErrors = $distributionProfile->validateForSubmission($entryDistribution, DistributionAction::SUBMIT);
     $entryDistribution->setValidationErrorsArray($validationErrors);
     return $entryDistribution;
 }
 /**
  * @param entry $entry
  * @param DistributionProfile $distributionProfile
  * @return EntryDistribution or null if failed to create.
  */
 public static function createEntryDistribution(entry $entry, DistributionProfile $distributionProfile)
 {
     $illegalEntryDistributionStatus = array(EntryDistributionStatus::SUBMITTING, EntryDistributionStatus::UPDATING, EntryDistributionStatus::DELETING, EntryDistributionStatus::IMPORT_SUBMITTING, EntryDistributionStatus::IMPORT_UPDATING);
     $entryDistribution = EntryDistributionPeer::retrieveByEntryAndProfileId($entry->getId(), $distributionProfile->getId());
     if (!$entryDistribution || $entryDistribution->getStatus() == EntryDistributionStatus::DELETED) {
         $entryDistribution = new EntryDistribution();
     } else {
         if (in_array($entryDistribution->getStatus(), $illegalEntryDistributionStatus)) {
             KalturaLog::err("Entry distribution already exist. entry [" . $entry->getId() . "] distribution profile [" . $distributionProfile->getId() . "] status [" . $entryDistribution->getStatus() . "]");
             return null;
         }
     }
     $entryDistribution->setEntryId($entry->getId());
     $entryDistribution->setPartnerId($entry->getPartnerId());
     $entryDistribution->setDistributionProfileId($distributionProfile->getId());
     $entryDistribution->setStatus(EntryDistributionStatus::PENDING);
     self::assignFlavorAssets($entryDistribution, $entry, $distributionProfile);
     self::assignThumbAssets($entryDistribution, $entry, $distributionProfile);
     self::assignAssets($entryDistribution, $entry, $distributionProfile);
     $entryDistribution->save();
     // need to save before checking validations
     $validationErrors = $distributionProfile->validateForSubmission($entryDistribution, DistributionAction::SUBMIT);
     $entryDistribution->setValidationErrorsArray($validationErrors);
     return $entryDistribution;
 }
 /**
  * Adds an object to the instance pool.
  *
  * Propel keeps cached copies of objects in an instance pool when they are retrieved
  * from the database.  In some cases -- especially when you override doSelect*()
  * methods in your stub classes -- you may need to explicitly add objects
  * to the cache in order to ensure that the same objects are always returned by doSelect*()
  * and retrieveByPK*() calls.
  *
  * @param      DistributionProfile $value A DistributionProfile object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool(DistributionProfile $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         // if key === null
         self::$instances[$key] = $obj;
     }
 }
 /**
  * Adds an object to the instance pool.
  *
  * Propel keeps cached copies of objects in an instance pool when they are retrieved
  * from the database.  In some cases -- especially when you override doSelect*()
  * methods in your stub classes -- you may need to explicitly add objects
  * to the cache in order to ensure that the same objects are always returned by doSelect*()
  * and retrieveByPK*() calls.
  *
  * @param      DistributionProfile $value A DistributionProfile object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool(DistributionProfile $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         if (isset(self::$instances[$key]) || count(self::$instances) < kConf::get('max_num_instances_in_pool')) {
             self::$instances[$key] = $obj;
             kMemoryManager::registerPeer('DistributionProfilePeer');
         }
     }
 }