/**
  * {@inheritdoc}
  */
 public function process(ConsumerEvent $event)
 {
     $order = $this->getOrder($event);
     $transaction = $this->getTransaction($event);
     $orderElements = $order->getOrderElements();
     foreach ($orderElements as $orderElement) {
         $this->backend->createAndPublish('sonata_payment_order_element_process', array('product_id' => $orderElement->getProductId(), 'transaction_status' => $transaction->getStatusCode(), 'order_status' => $order->getStatus(), 'quantity' => $orderElement->getQuantity(), 'product_type' => $orderElement->getProductType()));
     }
 }
 /**
  * @param PageInterface $object
  */
 protected function sendMessage($object)
 {
     if ($object instanceof BlockInterface && method_exists($object, 'getPage')) {
         $pageId = $object->getPage()->getId();
     } elseif ($object instanceof PageInterface) {
         $pageId = $object->getId();
     } else {
         return;
     }
     $this->backend->createAndPublish('sonata.page.create_snapshot', array('pageId' => $pageId));
 }
 /**
  * Hook which sends a notification on a published notification failure
  *
  * @param AuthenticationAttemptEvent $event
  */
 public function onAuthenticationFailure(AuthenticationAttemptEvent $event)
 {
     $user = $event->getUser();
     $report = $event->getReport();
     $defaultParameters = ['user' => $user, 'override_locale' => true];
     if (1 < ($attempts = $report->getAttempts())) {
         $defaultParameters['content'] = 'notification.auth.failures';
         $defaultParameters['parameters'] = ['translation_defaults' => ['%times%' => $attempts]];
     } else {
         $defaultParameters['content'] = 'notification.auth.single_failure';
     }
     $this->publisher->createAndPublish('sen_mailer', $defaultParameters);
 }
 /**
  * Creates snapshots of all pages.
  *
  * @ApiDoc(
  *  statusCodes={
  *      200="Returned when snapshots are successfully queued for creation",
  *      400="Returned when an error has occurred while snapshots creation",
  *  }
  * )
  *
  * @return \FOS\RestBundle\View\View
  *
  * @throws NotFoundHttpException
  */
 public function postPagesSnapshotsAction()
 {
     $sites = $this->siteManager->findAll();
     foreach ($sites as $site) {
         $this->backend->createAndPublish('sonata.page.create_snapshot', array('siteId' => $site->getId()));
     }
     return array('queued' => true);
 }
 /**
  * {@inheritdoc}
  */
 public function getPaymentCallbackResponse(Request $request)
 {
     // retrieve the transaction
     $transaction = $this->createTransaction($request);
     $order = $this->getValidOrder($transaction);
     // start the payment callback
     $response = $this->getPayment($transaction->getPaymentCode())->callback($transaction);
     $this->transactionManager->save($transaction);
     $this->orderManager->save($order);
     $this->notificationBackend->createAndPublish('sonata_payment_order_process', array('order_id' => $order->getId(), 'transaction_id' => $transaction->getId()));
     return $response;
 }
 /**
  * Hook at the reset password process
  *
  * @param ResetPasswordEvent $event
  */
 public function onPasswordReset(ResetPasswordEvent $event)
 {
     $this->publisher->createAndPublish('sen_mailer', ['user' => $event->getUser(), 'content' => 'notification.password_reset', 'parameters' => ['translation_defaults' => ['%new_password%' => $event->getNewRawPassword()]], 'override_locale' => true]);
 }
 /**
  * {@inheritdoc}
  */
 public function generate(MediaProviderInterface $provider, MediaInterface $media)
 {
     $this->backend->createAndPublish('sonata.media.create_thumbnail', array('thumbnailId' => $this->id, 'mediaId' => $media->getId(), 'providerReference' => $media->getProviderReference()));
 }
 /**
  * Sends a welcome email on registration
  *
  * @param CreateUserEvent $event
  */
 public function postUserRegistration(CreateUserEvent $event)
 {
     $user = $event->getUser();
     $this->notificationPublisher->createAndPublish('sen_mailer', ['user' => $user, 'config_path' => 'SententiaregumApp:registration', 'parameters' => ['code' => $event->getActivationKey(), 'name' => $event->getUser()->getCredentials()->getUsername()], 'override_locale' => true]);
 }