src/Controller/Admin/Dashboard/DashboardController.php line 33

Open in your IDE?
  1. <?php
  2. /**
  3.  * @author Yenier Jimenez <yjmorales86@gmail.com>
  4.  */
  5. namespace App\Controller\Admin\Dashboard;
  6. use App\Controller\Core\BaseController;
  7. use App\Entity\AboutUs;
  8. use App\Entity\ContactUsMessageType;
  9. use App\Entity\Inquiry;
  10. use App\Entity\ReadyToLaunch;
  11. use App\Entity\Resource;
  12. use App\Entity\Service;
  13. use App\Entity\Startup;
  14. use App\Entity\TeamMember;
  15. use App\Entity\User;
  16. use Doctrine\Persistence\ManagerRegistry;
  17. use Illuminate\Support\Arr;
  18. use Symfony\Component\HttpFoundation\Response;
  19. use Symfony\Component\Routing\Annotation\Route;
  20. /**
  21.  * Renders the dashboard page.
  22.  */
  23. class DashboardController extends BaseController
  24. {
  25.     /**
  26.      * Renders the dashboard page.
  27.      *
  28.      * @Route("/admin/dashboard", name="bo_dashboard")
  29.      */
  30.     public function index(ManagerRegistry $doctrine): Response
  31.     {
  32.         $about Arr::first($this->repository($doctrineAboutUs::class)->findAll());;
  33.         $users $this->repository($doctrineUser::class)->findAll();
  34.         // Inquiry
  35.         $messageRepo       $this->repository($doctrineInquiry::class);
  36.         $countAllInquiries $messageRepo->count(['type' => ContactUsMessageType::INQUIRY,]);
  37.         $newInquiries      $messageRepo->findBy([
  38.             'visited' => false,
  39.             'type'    => ContactUsMessageType::INQUIRY,
  40.         ]);
  41.         // Launching
  42.         $countAllLaunching       $messageRepo->count(['type' => ContactUsMessageType::READY_TO_LAUNCH,]);
  43.         $newReadyToLaunchInquiry $messageRepo->findBy([
  44.             'visited' => false,
  45.             'type'    => ContactUsMessageType::READY_TO_LAUNCH,
  46.         ]);
  47.         // Resume
  48.         $countAllResumes  $messageRepo->count(['type' => ContactUsMessageType::SUBMIT_RESUME,]);
  49.         $newResumeInquiry $messageRepo->findBy([
  50.             'visited' => false,
  51.             'type'    => ContactUsMessageType::SUBMIT_RESUME,
  52.         ]);
  53.         // Sponsorships
  54.         $countAllSponsorships  $messageRepo->count(['type' => ContactUsMessageType::SPONSORSHIP,]);
  55.         $newSponsorshipInquiry $messageRepo->findBy([
  56.             'visited' => false,
  57.             'type'    => ContactUsMessageType::SPONSORSHIP,
  58.         ]);
  59.         $allNewMessages $countAllInquiries $countAllResumes $countAllLaunching $countAllSponsorships;
  60.         return $this->render('/admin/authenticated/dashboard/dashboard.html.twig', [
  61.             'about'            => $about,
  62.             'usersCount'       => count($users),
  63.             'servicesCount'    => count($this->repository($doctrineService::class)->findAll()),
  64.             'resourcesCount'   => count($this->repository($doctrineResource::class)->findAll()),
  65.             'startupsCount'    => count($this->repository($doctrineStartup::class)->findAll()),
  66.             'teamMembersCount' => count($this->repository($doctrineTeamMember::class)->findAll()),
  67.             'countNewInquiries' => count($newInquiries),
  68.             'countAllInquiries' => $countAllInquiries,
  69.             'countNewResumes' => count($newResumeInquiry),
  70.             'countAllResumes' => $countAllResumes,
  71.             'countNewLaunching' => count($newReadyToLaunchInquiry),
  72.             'countAllLaunching' => $countAllLaunching,
  73.             'countNewSponsorships' => count($newSponsorshipInquiry),
  74.             'countAllSponsorships' => $countAllSponsorships,
  75.             'allNewMessages' => $allNewMessages,
  76.         ]);
  77.     }
  78. }