Example #1
0
 public function sendInvitation(Event $event, array $users = [])
 {
     foreach ($users as $key => $user) {
         $invitation = $this->om->getRepository('ClarolineAgendaBundle:EventInvitation')->findOneBy(['user' => $user, 'event' => $event]);
         if ($invitation) {
             unset($users[$key]);
             continue;
         }
         $eventInvitation = new EventInvitation($event, $user);
         $this->om->persist($eventInvitation);
     }
     $this->om->flush();
     $creator = $this->tokenStorage->getToken()->getUser();
     $message = new SendMessageEvent($creator, $this->translator->trans('send_message_content', ['%Sender%' => $creator->getUserName(), '%Start%' => $event->getStart(), '%End%' => $event->getEnd(), '%Description%' => $event->getDescription(), '%JoinAction%' => $this->container->get('router')->generate('claro_agenda_invitation_action', ['event' => $event->getId(), 'action' => EventInvitation::JOIN]), '%MaybeAction%' => $this->container->get('router')->generate('claro_agenda_invitation_action', ['event' => $event->getId(), 'action' => EventInvitation::MAYBE]), '%ResignAction%' => $this->container->get('router')->generate('claro_agenda_invitation_action', ['event' => $event->getId(), 'action' => EventInvitation::RESIGN])], 'agenda'), $this->translator->trans('send_message_object', ['%EventName%' => $event->getTitle()], 'agenda'), null, $users, false);
     $dispatcher = $this->container->get('event_dispatcher');
     $dispatcher->dispatch('claroline_message_sending_to_users', $message);
 }
 /**
  * @EXT\Route(
  *      "/accept/invitation/{event}/{action}",
  *      name="claro_agenda_invitation_action"
  * )
  * @EXT\Template("ClarolineAgendaBundle:Agenda:invitation.html.twig")
  */
 public function invitationAction(Event $event, $action)
 {
     $user = $this->tokenStorage->getToken()->getUser();
     $invitation = $this->em->getRepository('ClarolineAgendaBundle:EventInvitation')->findOneBy(['event' => $event->getId(), 'user' => $user->getId()]);
     if ($invitation && $invitation->getStatus() != $action) {
         $invitation->setStatus($action);
         $this->em->flush();
         return ['invitation' => $invitation, 'already_done' => false];
     }
     return ['invitation' => $invitation, 'already_done' => true];
 }