/** * batch addBulkUploadResultAction action adds KalturaBulkUploadResult to the DB * * @action addBulkUploadResult * @param KalturaBulkUploadResult $bulkUploadResult The results to save to the DB * @param KalturaBulkUploadPluginDataArray $pluginDataArray * @return KalturaBulkUploadResult */ function addBulkUploadResultAction(KalturaBulkUploadResult $bulkUploadResult, KalturaBulkUploadPluginDataArray $pluginDataArray = null) { if (is_null($bulkUploadResult->action)) { $bulkUploadResult->action = KalturaBulkUploadAction::ADD; } $bulkUploadResult->pluginsData = $pluginDataArray; $dbBulkUploadResult = BulkUploadResultPeer::retrieveByBulkUploadIdAndIndex($bulkUploadResult->bulkUploadJobId, $bulkUploadResult->lineIndex); if ($dbBulkUploadResult) { $dbBulkUploadResult = $bulkUploadResult->toUpdatableObject($dbBulkUploadResult); } else { $dbBulkUploadResult = $bulkUploadResult->toInsertableObject(); } /* @var $dbBulkUploadResult BulkUploadResult */ $dbBulkUploadResult->save(); if ($bulkUploadResult->objectId) { $dbBulkUploadResult->handleRelatedObjects(); $jobs = BatchJobPeer::retrieveByEntryId($bulkUploadResult->objectId); foreach ($jobs as $job) { if (!$job->getParentJobId()) { $job->setRootJobId($bulkUploadResult->bulkUploadJobId); $job->setBulkJobId($bulkUploadResult->bulkUploadJobId); $job->save(); } } if ($dbBulkUploadResult->getObject() && $pluginDataArray && $pluginDataArray->count) { $pluginValues = $pluginDataArray->toValuesArray(); if (count($pluginValues)) { $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaBulkUploadHandler'); foreach ($pluginInstances as $pluginInstance) { $pluginInstance->handleBulkUploadData($dbBulkUploadResult->getObject(), $pluginValues); } } } } $bulkUploadResult->fromObject($dbBulkUploadResult); return $bulkUploadResult; }