src/DcSiteBundle/Controller/Citroen/BaseController.php line 43

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Controller\Citroen;
  3. use CoreBundle\Component\CoreFormFactory;
  4. use CoreBundle\Component\FormManager;
  5. use CoreBundle\Factory\Vehicle as VehicleFactory;
  6. use CoreBundle\Model\Api\OnlineService\ApiServer1C;
  7. use CoreBundle\Model\Vehicles\Repository;
  8. use CoreBundle\Services\MediaExtensionVidi;
  9. use DcSiteBundle\Controller\BaseDcController;
  10. use Doctrine\ORM\EntityManagerInterface;
  11. use Doctrine\ORM\NonUniqueResultException;
  12. use PortalBundle\Model\SeoMetaTag;
  13. use Symfony\Component\Filesystem\Filesystem;
  14. use Symfony\Component\HttpFoundation\RequestStack;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  17. use Symfony\Component\Routing\RouterInterface;
  18. use Twig\Environment;
  19. class BaseController extends BaseDcController
  20. {
  21.     public function __construct(CoreFormFactory $coreFormFactorySeoMetaTag $seoMetaTagRequestStack $requestStackRouterInterface $routerFormManager $formManagerEntityManagerInterface $emApiServer1C $apiServer1CSessionInterface $sessionFilesystem $filesystemMediaExtensionVidi $mediaExtensionVidiRepository $vehicleRepositoryVehicleFactory $vehicleFactoryEnvironment $twig)
  22.     {
  23.         parent::__construct($coreFormFactory$seoMetaTag$requestStack$router$formManager$em$apiServer1C$session$filesystem$mediaExtensionVidi$vehicleRepository$vehicleFactory$twig);
  24.     }
  25.     protected function baseCitroenRender($view, array $parameters = [], Response $response null): ?Response
  26.     {
  27.         $parameters array_merge($parameters, [
  28.             'forms' => $this->buildForms(),
  29.             'newVehicles' => $this->getNewVehicles(),
  30.             'privacyUrl' => $this->router->generate('citroen_personal_data_agreement'),
  31.         ]);
  32.         return parent::baseDcRender($view$parameters$response);
  33.     }
  34.     /**
  35.      * @return array
  36.      * @throws NonUniqueResultException
  37.      */
  38.     public function buildForms(): array
  39.     {
  40.         return [
  41.             'testDrive' => $this->CoreFormFactory()->testDriveForm($this->getDealer())->createView(),
  42.             'serviceForm' => $this->CoreFormFactory()->serviceForm()->createView(),
  43.             'callback' => $this->CoreFormFactory()->orderCallForm(null$this->getDealer())->createView(),
  44.             'question' => $this->CoreFormFactory()->feedbackQuestionForm(null$this->getDealer())->createView(),
  45.             'buyAccForm' => $this->CoreFormFactory()->buyPartsForm($this->getDealer())->createView(),
  46.         ];
  47.     }
  48.     public function getNewVehicles()
  49.     {
  50.         $vehicles $this->vehicleRepository->getNewByDealer($this->getDealer());
  51.         $result = [];
  52.         foreach ($vehicles as $vehicle) {
  53.             $model $this->vehicleFactory->createByEntity($vehicle);
  54.             if(!$model) {
  55.                 continue;
  56.             }
  57.             $result[] = $model;
  58.         }
  59.         return $result;
  60.     }
  61. }