src/Controller/CourseCompareController.php line 49

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Applicant;
  4. use App\Entity\Course;
  5. use App\Entity\CourseRegistrationRequest;
  6. use App\Entity\CourseReview;
  7. use App\Entity\CourseTopic;
  8. use App\Entity\Organizer;
  9. use App\Form\CourseRegistrationRequestType;
  10. use App\Form\CourseReviewType;
  11. use App\Form\CourseType;
  12. use App\Repository\CourseRepository;
  13. use App\Util\ApplicantUtil;
  14. use App\Util\Course\CourseCompareUtil;
  15. use App\Util\CourseUtil;
  16. use App\Util\OrganizerUtil;
  17. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  18. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  19. use Symfony\Component\HttpFoundation\Request;
  20. use Symfony\Component\HttpFoundation\Response;
  21. use Symfony\Component\Routing\Annotation\Route;
  22. /**
  23.  * @Route("/kurzy/porovnani")
  24.  */
  25. class CourseCompareController extends AbstractController
  26. {
  27.     /**
  28.      * @var CourseCompareUtil
  29.      */
  30.     private $compareUtil;
  31.     /**
  32.      * @var CourseUtil
  33.      */
  34.     private $courseUtil;
  35.     public function __construct(CourseCompareUtil $compareUtilCourseUtil $courseUtil)
  36.     {
  37.         $this->compareUtil $compareUtil;
  38.         $this->courseUtil $courseUtil;
  39.     }
  40.     /**
  41.      * @Route("/odebrat/{id}", name="compare_remove", methods={"GET"})
  42.      */
  43.     public function remove($idRequest $request): Response
  44.     {
  45.         $course $this->courseUtil->getCourseById($id);
  46.         if (!$course instanceof Course) {
  47.             $this->addFlash('notice''Kurz nebyl nalezen');
  48.             $this->redirectToRoute('homepage');
  49.         }
  50.         $this->compareUtil->removeCourseFromCompare($course);
  51.         $this->addFlash('success''Kurz byl odebrán z porovnání');
  52.         // $this->addFlash() is equivalent to $request->getSession()->getFlashBag()->add()
  53.         return $this->redirectToRoute('course_show', ['id' =>$course->getId()]);
  54.     }
  55.     /**
  56.      * @Route("/", name="compare_list", methods={"GET"})
  57.      */
  58.     public function list(): Response
  59.     {
  60.         return $this->render('course/compare.html.twig', [
  61.             'courses' => $this->compareUtil->getCoursesToCompareList()
  62.         ]);
  63.     }
  64.     /**
  65.      * @Route("/pridat/{id}", name="compare_add", methods={"GET"})
  66.      */
  67.     public function add($idRequest $request): Response
  68.     {
  69.         $course $this->courseUtil->getCourseById($id);
  70.         if (!$course instanceof Course) {
  71.             $this->addFlash('notice''Kurz nebyl nalezen');
  72.             $this->redirectToRoute('homepage');
  73.         }
  74.         $this->compareUtil->addCourseToCompare($course);
  75.         $this->addFlash('success''Kurz byl přidán k porovnání');
  76.         // $this->addFlash() is equivalent to $request->getSession()->getFlashBag()->add()
  77.         return $this->redirectToRoute('course_show', ['id' =>$course->getId()]);
  78.     }
  79. }