public function markContextAsFailed(Customweb_Payment_ExternalCheckout_IContext $context, $message)
 {
     if (!$context instanceof Customweb_Payment_ExternalCheckout_AbstractContext) {
         throw new Customweb_Core_Exception_CastException('Customweb_Payment_ExternalCheckout_AbstractContext');
     }
     if ($context->getState() == Customweb_Payment_ExternalCheckout_IContext::STATE_COMPLETED) {
         throw new Exception("The external checkout context cannot be set to state FAILED, while the context is already in state COMPLETED.");
     }
     $context->setState(Customweb_Payment_ExternalCheckout_IContext::STATE_FAILED);
     $context->setFailedErrorMessage($message);
     $this->refreshFailedContext($context);
     $this->entityManager->persist($context);
 }
 public function updatePaymentMethod(Customweb_Payment_ExternalCheckout_IContext $context, Customweb_Payment_Authorization_IPaymentMethod $method)
 {
     if (!$context instanceof Customweb_SaferpayCw_Model_ExternalCheckoutContext) {
         throw new Customweb_Core_Exception_CastException('Customweb_SaferpayCw_Model_ExternalCheckoutContext');
     }
     $context->setState(Customweb_Payment_ExternalCheckout_IContext::STATE_PENDING);
     $context->setPaymentMethod($method);
     $context->save();
     $this->refreshContext($context);
     $context->save();
 }