/**
  * Add bulk upload job
  * @param DropFolder $folder
  * @param DropFolderFile $leadDropFolderFile
  * @throws Exception
  */
 private function addXMLBulkUploadJob(DropFolder $folder, DropFolderFile $leadDropFolderFile)
 {
     /* @var $leadDropFolderFile FeedDropFolderFile */
     KalturaLog::info('Adding BulkUpload job');
     try {
         $coreBulkUploadType = BulkUploadXmlPlugin::getBulkUploadTypeCoreValue(BulkUploadXmlType::XML);
         $objectId = $leadDropFolderFile->getId();
         $objectType = DropFolderXmlBulkUploadPlugin::getBatchJobObjectTypeCoreValue(DropFolderBatchJobObjectType::DROP_FOLDER_FILE);
         $partner = PartnerPeer::retrieveByPK($folder->getPartnerId());
         $data = KalturaPluginManager::loadObject('kBulkUploadJobData', $coreBulkUploadType);
         /* @var $data kBulkUploadJobData */
         $data->setUploadedBy(kDropFolderXmlEventsConsumer::UPLOADED_BY);
         KalturaLog::info("Feed XML path: " . $leadDropFolderFile->getFeedXmlPath());
         $data->setFilePath($leadDropFolderFile->getFeedXmlPath());
         $data->setFileName(basename($data->getFilePath()) . '.xml');
         $objectData = new kBulkUploadEntryData();
         KalturaLog::info('Conversion profile id: ' . $folder->getConversionProfileId());
         $objectData->setConversionProfileId($folder->getConversionProfileId());
         $data->setObjectData($objectData);
         $job = kJobsManager::addBulkUploadJob($partner, $data, $coreBulkUploadType, $objectId, $objectType);
         $this->setFileToProcessing($leadDropFolderFile);
         return $job;
     } catch (Exception $e) {
         KalturaLog::err("Error adding BulkUpload job -" . $e->getMessage());
         throw new Exception(DropFolderXmlBulkUploadPlugin::ERROR_ADDING_BULK_UPLOAD_MESSAGE, DropFolderXmlBulkUploadPlugin::getErrorCodeCoreValue(DropFolderXmlBulkUploadErrorCode::ERROR_ADDING_BULK_UPLOAD));
     }
 }
 public function setData(DropFolder $folder, DropFolderFile $dropFolderFileForObject, $dropFolderFileIds)
 {
     $this->dropFolderId = $folder->getId();
     $this->setConversionProfileId($folder->getConversionProfileId());
     $this->setParsedSlug($dropFolderFileForObject->getParsedSlug());
     $this->setContentMatchPolicy($folder->getFileHandlerConfig()->getContentMatchPolicy());
     $this->setDropFolderFileIds($dropFolderFileIds);
     if ($dropFolderFileForObject->getParsedUserId()) {
         $this->setParsedUserId($dropFolderFileForObject->getParsedUserId());
     }
 }
 /**
  * Check if all required files for the given ingestion profile are in the drop folder.
  */
 private function isAllContentDropFolderIngestedFilesReady(DropFolder $folder, $relatedFiles, $assetParamsList)
 {
     KalturaLog::debug('Ingest files according to conversion profile [' . $folder->getConversionProfileId() . ']');
     $existingFlavors = array();
     foreach ($relatedFiles as $relatedFile) {
         KalturaLog::debug('flavor [' . $relatedFile->getParsedFlavor() . '] file id [' . $relatedFile->getId() . ']');
         $existingFlavors[$relatedFile->getParsedFlavor()] = $relatedFile->getId();
     }
     foreach ($assetParamsList as $assetParams) {
         if ($assetParams->getReadyBehavior() == flavorParamsConversionProfile::READY_BEHAVIOR_REQUIRED && $assetParams->getOrigin() == assetParamsOrigin::INGEST) {
             if (!array_key_exists($assetParams->getSystemName(), $existingFlavors)) {
                 KalturaLog::debug('Flavor [' . $assetParams->getSystemName() . '] is required and must be ingested');
                 return false;
             }
         }
     }
     return true;
 }
 /**
  * Add bulk upload job
  * @param DropFolder $folder
  * @param DropFolderFile $leadDropFolderFile
  * @throws Exception
  */
 private function addXMLBulkUploadJob(DropFolder $folder, DropFolderFile $leadDropFolderFile)
 {
     try {
         $coreBulkUploadType = DropFolderXmlBulkUploadPlugin::getBulkUploadTypeCoreValue(DropFolderXmlBulkUploadType::DROP_FOLDER_XML);
         $objectId = $leadDropFolderFile->getId();
         $objectType = DropFolderXmlBulkUploadPlugin::getBatchJobObjectTypeCoreValue(DropFolderBatchJobObjectType::DROP_FOLDER_FILE);
         $partner = PartnerPeer::retrieveByPK($folder->getPartnerId());
         $data = KalturaPluginManager::loadObject('kBulkUploadJobData', $coreBulkUploadType);
         $data->setUploadedBy(kDropFolderXmlEventsConsumer::UPLOADED_BY);
         $data->setFileName($leadDropFolderFile->getFileName());
         $objectData = new kBulkUploadEntryData();
         $objectData->setConversionProfileId($folder->getConversionProfileId());
         $data->setObjectData($objectData);
         $job = kJobsManager::addBulkUploadJob($partner, $data, $coreBulkUploadType, $objectId, $objectType);
         return $job;
     } catch (Exception $e) {
         KalturaLog::err("Error adding BulkUpload job -" . $e->getMessage());
         throw new Exception(DropFolderXmlBulkUploadPlugin::ERROR_ADDING_BULK_UPLOAD_MESSAGE, DropFolderXmlBulkUploadPlugin::getErrorCodeCoreValue(DropFolderXmlBulkUploadErrorCode::ERROR_ADDING_BULK_UPLOAD));
     }
 }