Esempio n. 1
0
 private function executeMultipleAction(Action $processingAction)
 {
     /** @var Action\Item[] $processingActionItems */
     $processingActionItems = $processingAction->getItemCollection()->getItems();
     $dispatcherObject = $this->modelFactory->getObject('Ebay\\Connector\\Dispatcher');
     $command = $this->getCommand($processingAction->getType());
     $requestData = array();
     $resultData = array();
     foreach ($processingActionItems as $processingActionItem) {
         if ($processingActionItem->isSkipped()) {
             $resultData[$processingActionItem->getRelatedId()] = array('is_skipped' => true, 'messages' => array($this->getSkippedItemMessage()));
             continue;
         }
         $requestData[$processingActionItem->getRelatedId()] = $processingActionItem->getInputData();
     }
     if (empty($requestData)) {
         $this->completeAction($processingAction, array('result' => $resultData), array());
         return;
     }
     $connectorObj = $dispatcherObject->getVirtualConnector($command[0], $command[1], $command[2], array('items' => $requestData), null, $processingAction->getMarketplaceId(), $processingAction->getAccountId(), $processingAction->getRequestTimeOut());
     try {
         $dispatcherObject->process($connectorObj);
     } catch (\Exception $exception) {
         $message = $this->modelFactory->getObject('Connector\\Connection\\Response\\Message');
         $message->initFromException($exception);
         $this->completeAction($processingAction, array(), array($message->asArray()), $connectorObj->getRequestTime());
         return;
     }
     $this->completeAction($processingAction, $connectorObj->getResponseData(), $connectorObj->getResponseMessages(), $connectorObj->getRequestTime());
 }