protected function makeMessage()
 {
     $data = $this->handleData($this->event->getData());
     $params = $this->handleParams($this->fc_listener->getParams());
     if (!is_array($params['email_to'])) {
         if (strpos($params['email_to'], ',') === false) {
             $params['email_to'] = array($params['email_to']);
         } else {
             $params['email_to'] = explode(',', $params['email_to']);
         }
     }
     $message = $this->mailer->createMessage()->setSubject($params['subject'])->setFrom($params['email_from'])->setTo($params['email_to']);
     foreach ($data as $key => $value) {
         if ($value instanceof UploadedFile) {
             $message->attach(\Swift_Attachment::fromPath($value->getPathname())->setFilename($value->getClientOriginalName()));
             unset($data[$key]);
         }
     }
     $message->setBody($this->makeBody($data), 'text/html');
     return $message;
 }
 protected function addListener(FormBuilderInterface $builder, FcFormEventListener $fc_listener)
 {
     $listener = $this->listener_chain->getListener($fc_listener->getListener());
     $listener->buildListener($builder, $fc_listener);
 }
 /**
  * Creates and saves a listener
  *
  * @param Request $request
  * @param $id
  * @param $listener
  * @return JsonResponse
  * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
  * @throws \Symfony\Component\Security\Core\Exception\AccessDeniedException
  */
 public function doCreateListenerAction(Request $request, $id, $listener)
 {
     try {
         if (!$request->isXmlHttpRequest()) {
             throw $this->createAccessDeniedException();
         }
         $fc_form = FcFormQuery::create()->findPk($id);
         if (!$fc_form instanceof FcForm) {
             throw $this->createNotFoundException();
         }
         $fc_listener = new FcFormEventListener();
         $fc_listener->setListener($listener);
         $fc_listener->setFcForm($fc_form);
         $form_action = $this->admin->generateUrl('do_create_listener', array('id' => $id, 'listener' => $listener));
         $form = $this->createForm(new ListenerCommonType($form_action, $this->get('translator'), $this->container->get('fc.listener.chain')->getParamsBuilder($listener, $this->admin->getSubject())), $fc_listener);
         $form->handleRequest($request);
         if ($form->isValid()) {
             $fc_listener->save();
             return new JsonResponse(array('success' => true));
         }
     } catch (\Exception $e) {
         return new JsonResponse(array('success' => false, 'view' => 'Error ' . $e->getCode() . ': ' . $e->getMessage()));
     }
     return new JsonResponse(array('success' => false, 'view' => $this->renderView('FenrizbesFormConstructorBundle:SonataAdmin/FcForm:form.html.twig', array('form' => $form->createView()))));
 }