/**
  * Update widevine asset properties
  * If flavorAssetId is not set find asset by entryID and flavorParamsId
  * 
  * @param string $entryId
  * @param SimpleXMLElement $widevineAssetElm
  */
 private function handleWidevineAsset($entryId, SimpleXMLElement $widevineAssetElm)
 {
     $widevineAsset = new KalturaWidevineFlavorAsset();
     $widevineAsset->widevineAssetId = $widevineAssetElm->widevineAssetId;
     if ($widevineAssetElm->widevineDistributionStartDate) {
         $widevineAsset->widevineDistributionStartDate = KBulkUploadEngine::parseFormatedDate((string) $widevineAssetElm->widevineDistributionStartDate);
     }
     if ($widevineAssetElm->widevineDistributionEndDate) {
         $widevineAsset->widevineDistributionEndDate = KBulkUploadEngine::parseFormatedDate((string) $widevineAssetElm->widevineDistributionEndDate);
     }
     $flavorAssetId = null;
     if (isset($widevineAssetElm['flavorAssetId'])) {
         $flavorAssetId = $widevineAssetElm['flavorAssetId'];
     }
     if (!$flavorAssetId) {
         $flavorParamsId = $widevineAssetElm->flavorParamsId;
         $filter = new KalturaAssetFilter();
         $filter->entryIdEqual = $entryId;
         $flavorAssetList = KBatchBase::$kClient->flavorAsset->listAction($filter);
         if ($flavorAssetList->objects) {
             foreach ($flavorAssetList->objects as $flavorAsset) {
                 if ($flavorAsset->flavorParamsId == $flavorParamsId) {
                     $flavorAssetId = $flavorAsset->id;
                 }
             }
         }
     }
     if ($flavorAssetId) {
         KalturaLog::debug("updating flavor asset: " . $flavorAssetId);
         KBatchBase::$kClient->flavorAsset->update($flavorAssetId, $widevineAsset);
     }
 }
 public function handleDistribution($entryId, SimpleXMLElement $distribution)
 {
     $distributionProfileId = null;
     if (!empty($distribution->distributionProfileId)) {
         $distributionProfileId = (int) $distribution->distributionProfileId;
     }
     if (!$distributionProfileId && (!empty($distribution->distributionProfile) || !empty($distribution->distributionProvider))) {
         $distributionProfileId = $this->getDistributionProfileId($distribution->distributionProfile, $distribution->distributionProvider);
     }
     if (!$distributionProfileId) {
         throw new KalturaBatchException("Missing custom data distributionProfile attribute", KalturaBatchJobAppErrors::BULK_MISSING_MANDATORY_PARAMETER);
     }
     $distributionPlugin = KalturaContentDistributionClientPlugin::get($this->xmlBulkUploadEngine->getClient());
     $entryDistributionFilter = new KalturaEntryDistributionFilter();
     $entryDistributionFilter->distributionProfileIdEqual = $distributionProfileId;
     $entryDistributionFilter->entryIdEqual = $entryId;
     $pager = new KalturaFilterPager();
     $pager->pageSize = 1;
     $entryDistributionResponse = $distributionPlugin->entryDistribution->listAction($entryDistributionFilter, $pager);
     $entryDistribution = new KalturaEntryDistribution();
     $entryDistributionId = null;
     if (is_array($entryDistributionResponse->objects) && count($entryDistributionResponse->objects) > 0) {
         $existingEntryDistribution = reset($entryDistributionResponse->objects);
         $entryDistributionId = $existingEntryDistribution->id;
     } else {
         $entryDistribution->entryId = $entryId;
         $entryDistribution->distributionProfileId = $distributionProfileId;
     }
     if (!empty($distribution->sunrise) && KBulkUploadEngine::isFormatedDate($distribution->sunrise)) {
         $entryDistribution->sunrise = KBulkUploadEngine::parseFormatedDate($distribution->sunrise);
     }
     if (!empty($distribution->sunset) && KBulkUploadEngine::isFormatedDate($distribution->sunset)) {
         $entryDistribution->sunset = KBulkUploadEngine::parseFormatedDate($distribution->sunset);
     }
     if (!empty($distribution->flavorAssetIds)) {
         $entryDistribution->flavorAssetIds = $distribution->flavorAssetIds;
     }
     if (!empty($distribution->thumbAssetIds)) {
         $entryDistribution->thumbAssetIds = $distribution->thumbAssetIds;
     }
     $submitWhenReady = false;
     if ($distribution['submitWhenReady']) {
         $submitWhenReady = true;
     }
     $this->xmlBulkUploadEngine->impersonate();
     if ($entryDistributionId) {
         $updatedEntryDistribution = $distributionPlugin->entryDistribution->update($entryDistributionId, $entryDistribution);
         if ($submitWhenReady && $updatedEntryDistribution->dirtyStatus == KalturaEntryDistributionFlag::UPDATE_REQUIRED) {
             $distributionPlugin->entryDistribution->submitUpdate($entryDistributionId);
         }
     } else {
         $createdEntryDistribution = $distributionPlugin->entryDistribution->add($entryDistribution);
         $distributionPlugin->entryDistribution->submitAdd($createdEntryDistribution->id, $submitWhenReady);
     }
     $this->xmlBulkUploadEngine->unimpersonate();
 }