示例#1
0
 /**
  * @see parent
  *
  * @param int $identifier
  * @return bool
  */
 public function attempt($identifier)
 {
     $request = unserialize($this->getObject());
     $api = new Bronto_Api($request->getToken());
     try {
         $this->delete();
         $deliveryOps = $api->transferDelivery();
         foreach ($deliveryOps->createWritePager($request) as $result) {
             $delivery = $result->getOriginal();
             $item = $result->getItem();
             if ($item->getIsError()) {
                 Mage::throwException("Failed to send failed delivery {$item->getErrorString()}");
             }
             if ($delivery->hasEmailClass()) {
                 $delivery->withId($item->getId());
                 $email = Mage::getModel($delivery->getEmailClass());
                 $email->triggerBeforeAfterSend($deliveryOps, $delivery);
             }
         }
     } catch (Exception $e) {
         $this->store($delivery, $request->getToken(), $this->getAttempts() + 1);
         return false;
     }
     return true;
 }