<?php 
 
namespace DcSiteBundle\Controller; 
 
use CoreBundle\Component\CoreFormFactory; 
use CoreBundle\Component\FormManager; 
use CoreBundle\Entity\Post; 
use CoreBundle\Entity\Vehicles\Category; 
use CoreBundle\Entity\Vehicles\InStock; 
use CoreBundle\Entity\Vehicles\Vehicle; 
use CoreBundle\Factory\Vehicle as VehicleFactory; 
use CoreBundle\Model\Api\OnlineService\ApiServer1C; 
use CoreBundle\Model\Post as PostModel; 
use CoreBundle\Model\Vehicles\InStockRepository; 
use CoreBundle\Model\Vehicles\Repository; 
use CoreBundle\Model\Vehicles\VehicleType; 
use CoreBundle\Services\ImageProviderVidi; 
use CoreBundle\Services\MediaExtensionVidi; 
use DcSiteBundle\Controller\ToyotaBorispol\CarController; 
use DcSiteBundle\Entity\Boat; 
use DcSiteBundle\Entity\ModelRangePages; 
use DcSiteBundle\Entity\ServiceVariation; 
use DcSiteBundle\Entity\ServiceWork; 
use DcSiteBundle\Entity\ServiceWorkGroup; 
use DcSiteBundle\Entity\Vacancy; 
use DcSiteBundle\Enum\DealerPathEnum; 
use DcSiteBundle\Model\Catalog; 
use DcSiteBundle\Services\AccessoryShopService; 
use DcSiteBundle\Services\ModelRange\Pages\PagesService; 
use DcSiteBundle\Services\ServicePageService; 
use DcSiteBundle\Services\UsedVehicleService; 
use DcSiteBundle\Services\VehicleService; 
use Doctrine\ORM\EntityManagerInterface; 
use Exception; 
use PortalBundle\Model\SeoMetaTag; 
use Symfony\Component\Filesystem\Filesystem; 
use Symfony\Component\HttpFoundation\Request; 
use Symfony\Component\HttpFoundation\RequestStack; 
use Symfony\Component\HttpFoundation\Response; 
use Symfony\Component\HttpFoundation\Session\SessionInterface; 
use Symfony\Component\Routing\Generator\UrlGeneratorInterface; 
use Symfony\Component\Routing\RouterInterface; 
use Symfony\Component\Yaml\Yaml; 
use Twig\Environment; 
 
 
class SiteMapController extends BaseDcController 
{ 
    public function __construct(CoreFormFactory $coreFormFactory, SeoMetaTag $seoMetaTag, RequestStack $requestStack, RouterInterface $router, FormManager $formManager, EntityManagerInterface $em, ApiServer1C $apiServer1C, SessionInterface $session, Filesystem $filesystem, MediaExtensionVidi $mediaExtensionVidi, Repository $vehicleRepository, VehicleFactory $vehicleFactory, Environment $twig) 
    { 
        parent::__construct($coreFormFactory, $seoMetaTag, $requestStack, $router, $formManager, $em, $apiServer1C, $session, $filesystem, $mediaExtensionVidi, $vehicleRepository, $vehicleFactory, $twig); 
    } 
 
    public function suzuki(VehicleService $vehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/suzuki/suzuki_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        foreach (['ru', 'ua'] as $locale) { 
            $router = $this->router; 
            foreach ($routes as $rName => $route) { 
                try { 
                    $url = $router->generate($rName, ['_locale' => $locale]); 
                } catch (Exception $e) { 
                    continue; 
                } 
                $p = '0.5'; 
                $c = 'daily'; 
                if ($rName == 'suzuki_homepage') { 
                    $p = '1'; 
                    $c = 'always'; 
                } 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => $p, 
                    'changefreq' => $c, 
                ]; 
            } 
 
            $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
            /** @var Vehicle $car */ 
            foreach ($cars as $car) { 
                switch ($car->getVehicleType()) { 
                    case VehicleType::PASSENGER_TYPE: 
                        $rName = 'suzuki_card_car'; 
                        $r2Name = 'suzuki_card_car_configuraion'; 
                        $key = 'car'; 
                        break; 
//                    case VehicleType::MOTO_TYPE: 
//                        $rName = 'suzuki_card_moto'; 
//                        $r2Name = 'suzuki_card_moto_configuraion'; 
//                        $key = 'moto'; 
//                        break; 
                    default: 
                        $rName = false; 
                        break; 
                } 
                if (!$rName) { 
                    continue; 
                } 
                $result[] = [ 
                    'url' => $router->generate($rName, [$key => $car->getUrl(), '_locale' => $locale]), 
                    'priority' => '0.8', 
                    'changefreq' => 'daily', 
                ]; 
 
                $result[] = [ 
                    'url' => $router->generate($r2Name, [$key => $car->getUrl(), '_locale' => $locale]), 
                    'priority' => '0.8', 
                    'changefreq' => 'daily', 
                ]; 
            } 
 
            $post = $this->em->getRepository(Post::class)->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
            /** @var Post $one */ 
            foreach ($post as $one) { 
                if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                    $url = $router->generate('suzuki_about_news_single', ['url' => $one->getUrl(), '_locale' => $locale]); 
                } else { 
                    $url = $router->generate('suzuki_stocks_single', ['url' => $one->getUrl(), '_locale' => $locale]); 
                } 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly', 
                ]; 
            } 
 
            $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
            foreach ($models as $model) { 
                $result[] = [ 
                    'url' => $router->generate('suzuki_service_regulations_to_model', ['model' => $model['url']]), 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
 
            $usedCars = $this->vehicleRepository->getUsed($this->getDealer(), true); 
 
            /** @var Vehicle $car */ 
            foreach ($usedCars as $car) { 
                $result[] = [ 
                    'url' => $router->generate('suzuki_used_car_single', ['url' => $car->getUrl()]), 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('suzuki_model_lineup_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'ford_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function ford(Request $request, InStockRepository $inStockRepositoryModel, VehicleService $vehicleService): ?Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/ford/ford_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            $priority = '0.5'; 
            $changefreq = 'daily'; 
 
            if ($rName == 'ford_service_accessories') { 
                continue; 
            } 
 
            if ($rName == 'ford_homepage') { 
                $priority = '1'; 
                $changefreq = 'always'; 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => $priority, 
                'changefreq' => $changefreq, 
            ]; 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('ford_one_car', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate('ford_card_car_configuraion', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $archiveCars = $this->vehicleRepository->getDisabled($this->getDealer()); 
 
        /** @var Vehicle $car */ 
        foreach ($archiveCars as $car) { 
            $result[] = [ 
                'url' => $router->generate('ford_one_car', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate('ford_card_car_configuraion', ['car' => $car->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $vacancies = $this->em->getRepository(Vacancy::class)->getByDealer($this->getDealer()); 
 
        /** @var Vacancy $vacancy */ 
        foreach ($vacancies as $vacancy) { 
            $result[] = [ 
                'url' => $router->generate('ford_about_vacancy_id', ['id' => $vacancy->getId()]), 
                'priority' => '0.2', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
 
        $post = $this->em->getRepository(Post::class) 
            ->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            $result[] = [ 
                'url' => $router->generate('ford_get_post', ['url' => $one->getUrl()]), 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $inStock = $inStockRepositoryModel->getByDealer($this->getDealer()); 
 
        /** @var InStock $vehicle */ 
        foreach ($inStock as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('ford_cars_in_stock_card', ['url' => $vehicle->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('ford_service_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $usedCars = $this->vehicleRepository->getUsed($this->getDealer(), true); 
 
        /** @var Vehicle $car */ 
        foreach ($usedCars as $car) { 
            $result[] = [ 
                'url' => $router->generate('ford_used_car_single', ['url' => $car->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('ford_list_cars_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $carList = $this->getModelMenuItems($request->getLocale(), 'small'); 
        foreach ($carList as $category) { 
            $result[] = [ 
                'url' => $router->generate('ford_model_catalog_category', ['category' => $category['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'ford_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function jeep(Request $request, VehicleService $vehicleService, UsedVehicleService $usedVehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/jeep/jeep_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        $dealer = $this->getDealer(); 
 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
 
            if ($rName == 'jeep_public_offer') { 
                continue; 
            } 
 
            if ($rName == 'jeep_homepage') { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '1', 
                    'changefreq' => 'always', 
                ]; 
            } else { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            if ($car->getIsUsed()) { 
                continue; 
            } else { 
                $result[] = [ 
                    'url' => $router->generate('jeep_car', ['car' => $car->getUrl()]), 
                    'priority' => '0.8', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $vacancies = $this->em->getRepository(Vacancy::class)->getByDealer($dealer); 
 
        /** @var Vacancy $vacancy */ 
        foreach ($vacancies as $vacancy) { 
            $result[] = [ 
                'url' => $router->generate('jeep_about_vacancy_id', ['id' => $vacancy->getId()]), 
                'priority' => '0.3', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $vehicles = $this->em->getRepository(Vehicle::class)->getNewByDealer($dealer); 
 
        /** @var Vehicle $vehicles */ 
        foreach ($vehicles as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('jeep_technical_characteristics', ['model' => $vehicle->geturl()]), 
                'priority' => '0.7', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $vehiclesInStock = $this->em->getRepository(InStock::class)->getByDealer($dealer); 
 
        /** @var InStock $vehiclesInStock */ 
        foreach ($vehiclesInStock as $vehicleInStock) { 
            $result[] = [ 
                'url' => $router->generate('jeep_car_in_stock_single', ['url' => $vehicleInStock->geturl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $news = $this->em->getRepository(Post::class)->getNewsByDealer($dealer); 
 
        /** @var Post $news */ 
        foreach ($news as $new) { 
            $result[] = [ 
                'url' => $router->generate('jeep_news_single', ['news' => $new->geturl()]), 
                'priority' => '0.3', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $vehiclesServices = $vehicleService->getModelsForRegulationsTo($dealer); 
 
        /** @var VehicleService $vehiclesServices */ 
        foreach ($vehiclesServices as $vehicleService) { 
            $result[] = [ 
                'url' => $router->generate('jeep_service_regulations_to_model', ['model' => $vehicleService['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $usedVehicles = $usedVehicleService->getUsedVehiclesForSitemap($this->getDealer(), DealerPathEnum::JEEP, $request->getLocale()); 
 
        foreach ($usedVehicles as $usedVehicle) { 
            $result[] = [ 
                'url' => $router->generate('jeep_used_car_single', ['url' => $usedVehicle]), 
                'priority' => '0.7', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
 
        $posts = $this->em->getRepository(Post::class)->getActionsByDealer($this->getDealer()); 
 
        /** @var Post $post */ 
        foreach ($posts as $post) { 
            if ($post->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('jeep_news_single', ['news' => $post->getUrl()]); 
            } else { 
                $url = $router->generate('jeep_actions_single', ['actions' => $post->getUrl()]); 
            } 
 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', [ 
            'urls' => $result, 
            'route' => 'jeep_sitemap' 
        ]); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
 
        return $response; 
    } 
 
    public function mazda(VehicleService $vehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/mazda/mazda_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            $priority = '0.5'; 
            $changefreq = 'daily'; 
 
            if ($rName == 'mazda_service_souvenirs_ajax') { 
                continue; 
            } 
 
            if ($rName == 'mazda_homepage') { 
                $priority = '1'; 
                $changefreq = 'always'; 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => $priority, 
                'changefreq' => $changefreq, 
            ]; 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('mazda_car_configurator', ['url' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate('mazda_card_car', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate('mazda_card_car_configuraion', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $post = $this->em->getRepository(Post::class)->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('mazda_about_news_single', ['url' => $one->getUrl()]); 
            } else { 
                $url = $router->generate('mazda_stocks_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $usedVehicles = $this->vehicleRepository->getUsedByDealer($this->getDealer()); 
 
        foreach ($usedVehicles as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('mazda_used_car_single', ['url' => $vehicle->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('mazda_service_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('mazda_model_lineup_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'ford_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function peugeot(VehicleService $vehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/peugeot/peugeot_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        foreach (['ru', 'ua'] as $locale) { 
            $router = $this->router; 
            foreach ($routes as $rName => $route) { 
                if ($rName == 'peugeot_accessories_redirect') { 
                    continue; 
                } 
                if ($rName == 'peugeot_public_offer') { 
                    continue; 
                } 
                try { 
                    $url = $router->generate($rName, ['_locale' => $locale]); 
                } catch (Exception $e) { 
                    continue; 
                } 
                $p = '0.5'; 
                $c = 'daily'; 
                if ($rName == 'peugeot_homepage') { 
                    $p = '1'; 
                    $c = 'always'; 
                } 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => $p, 
                    'changefreq' => $c, 
                ]; 
            } 
 
            $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
            /** @var Vehicle $car */ 
            foreach ($cars as $car) { 
                $result[] = [ 
                    'url' => $router->generate('peugeot_card_car', ['car' => $car->getUrl(), '_locale' => $locale]), 
                    'priority' => '0.8', 
                    'changefreq' => 'daily', 
                ]; 
            } 
 
            $post = $this->em->getRepository(Post::class)->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
            /** @var Post $one */ 
            foreach ($post as $one) { 
                if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                    $url = $router 
                        ->generate( 
                            'peugeot_about_news_single', 
                            ['url' => $one->getUrl(), '_locale' => $locale] 
                        ); 
                } else { 
                    $url = $router->generate('peugeot_stocks_single', ['url' => $one->getUrl(), '_locale' => $locale]); 
                } 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly', 
                ]; 
            } 
 
            $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
            foreach ($models as $model) { 
                if ($model['url'] == '') { 
                    continue; 
                } 
                $result[] = [ 
                    'url' => $router->generate('peugeot_service_regulations_to_model', ['model' => $model['url']]), 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
 
            $usedVehicles = $this->vehicleRepository->getUsedByDealer($this->getDealer()); 
 
            foreach ($usedVehicles as $vehicle) { 
                $result[] = [ 
                    'url' => $router->generate('peugeot_used_car_single', ['url' => $vehicle->getUrl()]), 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('peugeot_model_lineup_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'peugeot_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function subaru(InStockRepository $inStockRepository, UsedVehicleService $usedVehicleService, VehicleService $vehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/subaru/subaru_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        foreach (['ru', 'ua'] as $locale) { 
            $router = $this->router; 
            foreach ($routes as $rName => $route) { 
                try { 
                    $url = $router->generate($rName, ['_locale' => $locale]); 
                } catch (Exception $e) { 
                    continue; 
                } 
                $p = '0.5'; 
                $c = 'daily'; 
                if ($rName == 'subaru_homepage') { 
                    $p = '1'; 
                    $c = 'always'; 
                } 
                if ($rName == 'subaru_service_accessories' || $rName == 'subaru_check_vin_ajax') { 
                    continue; 
                } 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => $p, 
                    'changefreq' => $c, 
                ]; 
            } 
 
            $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
            /** @var Vehicle $car */ 
            foreach ($cars as $car) { 
                $result[] = [ 
                    'url' => $router->generate('subaru_card_car', ['car' => $car->getUrl(), '_locale' => $locale]), 
                    'priority' => '0.8', 
                    'changefreq' => 'daily', 
                ]; 
 
                $result[] = [ 
                    'url' => $router->generate( 
                        'subaru_card_car_configuraion', 
                        ['car' => $car->getUrl(), '_locale' => $locale] 
                    ), 
                    'priority' => '0.8', 
                    'changefreq' => 'daily', 
                ]; 
            } 
 
            $inStock = $inStockRepository->getByDealer($this->getDealer()); 
 
            /** @var InStock $vehicle */ 
            foreach ($inStock as $vehicle) { 
                $result[] = [ 
                    'url' => $router->generate('subaru_instock_car_card', ['url' => $vehicle->getUrl(), '_locale' => $locale]), 
                    'priority' => '0.8', 
                    'changefreq' => 'monthly', 
                ]; 
            } 
 
            $usedCars = $usedVehicleService->getUsedVehiclesForSitemap($this->getDealer(), DealerPathEnum::SUBARU, $locale); 
            /** @var Vehicle $car */ 
            foreach ($usedCars as $car) { 
                $result[] = [ 
                    'url' => $router->generate('subaru_used_car_single', ['url' => $car, '_locale' => $locale]), 
                    'priority' => '0.8', 
                    'changefreq' => 'daily', 
                ]; 
            } 
 
            $post = $this->em->getRepository(Post::class)->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
            /** @var Post $one */ 
            foreach ($post as $one) { 
                if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                    $url = $router->generate( 
                        'subaru_about_news_single', 
                        ['url' => $one->getUrl(), '_locale' => $locale] 
                    ); 
                } else { 
                    $url = $router->generate('subaru_stocks_single', ['url' => $one->getUrl(), '_locale' => $locale]); 
                } 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly', 
                ]; 
            } 
 
            $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
            foreach ($models as $model) { 
                $result[] = [ 
                    'url' => $router->generate('subaru_service_regulations_to_model', ['model' => $model['url']]), 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'ford_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function infiniti(VehicleService $vehicleService, InStockRepository $inStockRepositoryModel): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/infiniti/infiniti_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            $priority = '0.5'; 
            $changefreq = 'daily'; 
 
            if ($rName == 'infiniti_public_offer') { 
                continue; 
            } 
 
            if ($rName == 'infiniti_homepage') { 
                $priority = '1'; 
                $changefreq = 'always'; 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => $priority, 
                'changefreq' => $changefreq, 
            ]; 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('infiniti_card_car', ['url' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $post = $this 
            ->em 
            ->getRepository(Post::class) 
            ->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('infiniti_news_single', ['url' => $one->getUrl()]); 
            } else { 
                $url = $router->generate('infiniti_special_offers_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('infiniti_service_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $inStock = $inStockRepositoryModel->getByDealer($this->getDealer()); 
 
        /** @var InStock $vehicle */ 
        foreach ($inStock as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('infiniti_cars_in_stock_card', ['url' => $vehicle->getUrl()]), 
                'priority' => '0.3', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('infiniti_model_car_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'ford_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function yamaha(): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/yamaha/yamaha_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            $priority = '0.5'; 
            $changefreq = 'daily'; 
            if ($rName == 'yamaha_homepage') { 
                $priority = '1'; 
                $changefreq = 'always'; 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => $priority, 
                'changefreq' => $changefreq, 
            ]; 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('yamaha_catalog_model_card', ['url' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $usedCars = $this->vehicleRepository->getUsedByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($usedCars as $car) { 
            $result[] = [ 
                'url' => $router->generate('yamaha_commission_tehnology_model', ['url' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $boats = $this->em->getRepository(Boat::class)->findBy(['state' => 1]); 
 
        /** @var Boat $boat */ 
        foreach ($boats as $boat) { 
            $result[] = [ 
                'url' => $router->generate('yamaha_boat_card', ['url' => $boat->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
        //TODO remove magic numbers 
        foreach ([12, 13, 16] as $group) { 
            $result[] = [ 
                'url' => $router->generate( 
                    'yamaha_catalog_all_groups_by_body', 
                    ['categoryUrl' => 'all', 'bodyId' => $group] 
                ), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $post = $this->em->getRepository(Post::class)->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('yamaha_about_news_single', ['url' => $one->getUrl()]); 
            } else { 
                $url = $router->generate('yamaha_stocks_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $response = $this->render( 
            '@DcSite/sitemap.xml.twig', 
            ['urls' => $result, 'route' => 'nissan_sitemap'] 
        ); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function nissan(VehicleService $vehicleService, InStockRepository $inStockRepositoryModel): ?Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/nissan/nissan_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            $priority = '0.5'; 
            $changefreq = 'daily'; 
            if ($rName == 'nissan_homepage') { 
                $priority = '1'; 
                $changefreq = 'always'; 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => $priority, 
                'changefreq' => $changefreq, 
            ]; 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        $categories = []; 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate( 
                    'nissan_one_car', 
                    ['car' => $car->getUrl(), 'category' => $car->getCategory()->getUrl()] 
                ), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate( 
                    'nissan_one_car_configuraion', 
                    ['car' => $car->getUrl(), 'category' => $car->getCategory()->getUrl()] 
                ), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $catID = $car->getCategory()->getId(); 
            if (!isset($categories[$catID])) { 
                $categories[$catID] = 1; 
                $result[] = [ 
                    'url' => $router->generate( 
                        'nissan_category_catalog', 
                        ['category' => $car->getCategory()->getUrl()] 
                    ), 
                    'priority' => '0.8', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $post = $this->em->getRepository(Post::class)->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('nissan_news_single', ['url' => $one->getUrl()]); 
            } else { 
                $url = $router->generate('nissan_stocks_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $usedVehicles = $this->vehicleRepository->getUsedByDealer($this->getDealer()); 
 
        foreach ($usedVehicles as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('nissan_used_car_single', ['url' => $vehicle->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('nissan_service_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $inStock = $inStockRepositoryModel->getByDealer($this->getDealer()); 
 
        /** @var InStock $vehicle */ 
        foreach ($inStock as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('nissan_cars_in_stock_card', ['url' => $vehicle->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('nissan_catalog_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render( 
            '@DcSite/sitemap.xml.twig', 
            ['urls' => $result, 'route' => 'nissan_sitemap'] 
        ); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function volvo(VehicleService $vehicleService): ?Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/volvo/volvo_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            $priority = '0.5'; 
            $changefreq = 'daily'; 
            if ($rName == 'volvo_homepage') { 
                $priority = '1'; 
                $changefreq = 'always'; 
            } 
            if ($rName == 'volvo_public_offer' || 'volvo_basket') { 
                continue; 
            } 
 
            $result[] = [ 
                'url' => $url, 
                'priority' => $priority, 
                'changefreq' => $changefreq, 
            ]; 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('volvo_card_car', ['url' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $archiveCars = $this->vehicleRepository->getDisabled($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($archiveCars as $car) { 
            $result[] = [ 
                'url' => $router->generate('volvo_card_car', ['url' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
 
        $post = $this 
            ->em 
            ->getRepository(Post::class) 
            ->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('volvo_about_news_single', ['url' => $one->getUrl()]); 
            } else { 
                $url = $router->generate('volvo_special_offers_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('volvo_service_calculation_valuation_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('volvo_model_lineup_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'volvo_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function landrover(VehicleService $vehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/landrover/landrover_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            $p = '0.5'; 
            $c = 'daily'; 
 
            if ($rName == 'landrover_service_acc') { 
                continue; 
            } 
 
            if ($rName == 'landrover_homepage') { 
                $p = '1'; 
                $c = 'always'; 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => $p, 
                'changefreq' => $c, 
            ]; 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('landrover_card_car', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $usedCars = $this->vehicleRepository->getUsedByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($usedCars as $car) { 
            $result[] = [ 
                'url' => $router->generate('landrover_used_card_car', ['id' => $car->getId()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $post = $this 
            ->em 
            ->getRepository(Post::class) 
            ->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('landrover_aboutus_news_single', ['url' => $one->getUrl()]); 
            } else { 
                $url = $router->generate('landrover_special_offers_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('landrover_service_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $response = $this->render( 
            '@DcSite/sitemap.xml.twig', 
            ['urls' => $result, 'route' => 'landrover_sitemap'] 
        ); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function jaguar(VehicleService $vehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/jaguar/jaguar_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
 
            if ($rName == 'jaguar_service_testdrive_form') { 
                continue; 
            } 
 
            if ($rName == 'jaguar_homepage') { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '1', 
                    'changefreq' => 'always', 
                ]; 
            } else { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('jaguar_card_car', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $usedCars = $this->vehicleRepository->getUsedByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($usedCars as $car) { 
            $result[] = [ 
                'url' => $router->generate('jaguar_used_card_car', ['id' => $car->getId()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $post = $this 
            ->em 
            ->getRepository(Post::class) 
            ->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate( 
                    'jaguar_aboutus_news-single', 
                    ['url' => $one->getUrl()], 
                    UrlGeneratorInterface::ABSOLUTE_URL 
                ); 
            } else { 
                $url = $router->generate( 
                    'jaguar_special_offers_single', 
                    ['url' => $one->getUrl()], 
                    UrlGeneratorInterface::ABSOLUTE_URL 
                ); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('jaguar_service_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'jaguar_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function nissanArmada(VehicleService $vehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/nissan_armada/nissan_armada_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            $priority = '0.5'; 
            $changefreq = 'daily'; 
            if ($rName == 'nissan_armada_homepage') { 
                $priority = '1'; 
                $changefreq = 'always'; 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => $priority, 
                'changefreq' => $changefreq, 
            ]; 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        $categories = []; 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate( 
                    'nissan_armada_one_car', 
                    ['car' => $car->getUrl(), 'category' => $car->getCategory()->getUrl()] 
                ), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate( 
                    'nissan_armada_one_car_configuraion', 
                    ['car' => $car->getUrl(), 'category' => $car->getCategory()->getUrl()] 
                ), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $catID = $car->getCategory()->getId(); 
            if (!isset($categories[$catID])) { 
                $categories[$catID] = 1; 
                $result[] = [ 
                    'url' => $router->generate( 
                        'nissan_armada_category_catalog', 
                        ['category' => $car->getCategory()->getUrl()] 
                    ), 
                    'priority' => '0.8', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $post = $this->em 
            ->getRepository(Post::class) 
            ->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('nissan_armada_news_single', ['url' => $one->getUrl()]); 
            } else { 
                $url = $router->generate('nissan_armada_stocks_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('nissan_armada_service_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('nissan_armada_catalog_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render( 
            '@DcSite/sitemap.xml.twig', 
            ['urls' => $result, 'route' => 'nissan_armada_sitemap'] 
        ); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function palmira(Request $request, VehicleService $vehicleService, InStockRepository $inStockRepositoryModel): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/toyota_odessa/toyota_odessa_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            $p = '0.5'; 
            $c = 'daily'; 
            if ($rName == 'toyota_odessa_homepage') { 
                $p = '1'; 
                $c = 'always'; 
            } 
 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
 
            if ($rName == 'toyota_odessa_basket') { 
                continue; 
            } else { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('toyota_odessa_one_car', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate('toyota_odessa_card_car_configuraion', ['car' => $car->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $carList = $this->getModelMenuItems($request->getLocale(), 'small'); 
        foreach ($carList as $category) { 
            $result[] = [ 
                'url' => $router->generate('toyota_odessa_car_catalog_category', ['category' => $category['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $inStock = $inStockRepositoryModel->getByDealer($this->getDealer()); 
 
        /** @var InStock $vehicle */ 
        foreach ($inStock as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('toyota_odessa_car_in_stock_car', ['url' => $vehicle->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $post = $this->em 
            ->getRepository(Post::class) 
            ->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('toyota_odessa_about_news_single', ['url' => $one->getUrl()]); 
            } else { 
                $url = $router->generate('toyota_odessa_action_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            if ($model['url'] == '') { 
                continue; 
            } 
 
            $result[] = [ 
                'url' => $router->generate('toyota_odessa_service_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $result[] = [ 
            'url' => $router->generate('toyota_odessa_action_list', ['type' => 'stocks_cars']), 
            'priority' => '0.3', 
            'changefreq' => 'monthly', 
        ]; 
 
        $result[] = [ 
            'url' => $router->generate('toyota_odessa_action_list', ['type' => 'stocks_service']), 
            'priority' => '0.3', 
            'changefreq' => 'monthly', 
        ]; 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('toyota_odessa_catalog_list_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render( 
            '@DcSite/sitemap.xml.twig', 
            ['urls' => $result, 'route' => 'toyota_odessa_sitemap'] 
        ); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function lexus(Request $request, VehicleService $vehicleService, PagesService $pagesService, InStockRepository $inStockRepositoryModel): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/lexus/lexus_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            $priority = '0.5'; 
            $changefreq = 'daily'; 
            if ($rName == 'lexus_homepage') { 
                $priority = '1'; 
                $changefreq = 'always'; 
            } 
 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => $priority, 
                'changefreq' => $changefreq, 
            ]; 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('lexus_configurator_action', ['url' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate('lexus_card_car', ['url' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate('lexus_card_car_configuraion', ['url' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        foreach ($cars as $car) { 
            $categories[] = $car->getCategory()->getUrl(); 
        } 
        foreach (array_unique($categories) as $category) { 
            $result[] = [ 
                'url' => $router->generate('lexus_car_catalog_category', ['url' => $category]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $group = $pagesService->setLang($request->getLocale())->getPages($this->getDealer()); 
        foreach ($group as $item) { 
            $result[] = [ 
                'url' => $router->generate('lexus_car_catalog_pages', ['url' => $item['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $inStock = $inStockRepositoryModel->getByDealer($this->getDealer()); 
        foreach ($inStock as $car) { 
            $result[] = [ 
                'url' => $router->generate('lexus_car_stock_single', ['url' => $car->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $usedCars = $this->vehicleRepository->getUsed($this->getDealer(), true); 
 
        /** @var Vehicle $car */ 
        foreach ($usedCars as $car) { 
            $result[] = [ 
                'url' => $router->generate('lexus_used_car_single', ['url' => $car->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $post = $this->em->getRepository(Post::class)->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('lexus_about_us_news_single', ['url' => $one->getUrl()]); 
            } else { 
                $url = $router->generate('lexus_stocks_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            if ($model['url'] == '') { 
                continue; 
            } 
 
            $result[] = [ 
                'url' => $router->generate('lexus_service_price_for_car_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $response = $this->render( 
            '@DcSite/sitemap.xml.twig', 
            ['urls' => $result, 'route' => 'toyota_odessa_sitemap'] 
        ); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function toyota(Request $request, InStockRepository $inStockRepositoryModel, ServicePageService $servicePageService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/toyota/toyota_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            if ($rName == 'toyota_about_mytoyota' || $rName == 'toyota_configurator_action' || $rName == 'toyota_accessories') { 
                continue; 
            } 
            if ($rName == 'toyota_homepage') { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '1', 
                    'changefreq' => 'always', 
                ]; 
            } else if (!in_array($rName, ['toyota_service_replacement_car_form', 'toyota_service_replacement_car']) 
                && !str_contains($url, '/api/')) { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $models = Toyota\CarController::MODEL_FRAME; 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('toyota_secondhand_model', ['model' => $model]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $inStock = $inStockRepositoryModel->getByDealer($this->getDealer()); 
 
        /** @var InStock $vehicle */ 
        foreach ($inStock as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('toyota_in_stock_car', ['url' => $vehicle->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            if ($car->getIsUsed()) { 
                continue; 
            } else { 
                $result[] = [ 
                    'url' => $router->generate('toyota_one_car', ['car' => $car->getUrl()]), 
                    'priority' => '0.8', 
                    'changefreq' => 'daily', 
                ]; 
                $result[] = [ 
                    'url' => $router->generate('toyota_card_car_configuraion', ['car' => $car->getUrl()]), 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $services = $servicePageService->getServiceByDealer($this->getDealer()); 
        foreach ($services as $service) { 
            foreach ($service['pages'] as $page) { 
                $result[] = [ 
                    'url' => $router->generate('toyota_service_page', ['url' => $page->getUrl()]), 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $post = $this->em->getRepository(Post::class)->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('toyota_about_news_single', ['url' => $one->getUrl()]); 
            } else { 
                $url = $router->generate('toyota_action_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $brandId = $this->getDealer()->getBrand()->getId(); 
        $variations = $this->em 
            ->getRepository(ServiceVariation::class) 
            ->getRegulationVariations($this->getDealer(), $brandId); 
        $uniqueModel = []; 
        foreach ($variations as $variation) { 
            $model = $variation->getModel(); 
            if ($model->getUrl() == '') { 
                continue; 
            } 
 
            if (!in_array($model->getUrl(), $uniqueModel)) { 
                $result[] = [ 
                    'url' => $router->generate('toyota_service_regulations_to_model', ['model' => $model->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly', 
                ]; 
                $uniqueModel[] = $model->getUrl(); 
            } 
        } 
 
        $carList = $this->getModelMenuItems($request->getLocale(), 'small'); 
        foreach ($carList as $category) { 
            $result[] = [ 
                'url' => $router->generate('toyota_car_catalog_category', ['category' => $category['url']]), 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('toyota_car_catalog_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render( 
            '@DcSite/sitemap.xml.twig', 
            ['urls' => $result, 'route' => 'toyota_odessa_sitemap'] 
        ); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function toyotaBorispol(Request $request, ServicePageService $servicePageService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/toyota_borispol/toyota_borispol_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            if ($rName == 'toyota_borispol_service_page' || 
                $rName == 'toyota_borispol_used_car_model' || 
                $rName == 'toyota_borispol_service_regulations_to_model' || 
                $rName == 'toyota_borispol_service_replacement_car_form' || 
                $rName == 'toyota_borispol_basket' || 
                $rName == 'toyota_borispol_service_order_rent_cars' || 
                $rName == 'toyota_borispol_actions_single') { 
                continue; 
            } else { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
            if ($rName == 'toyota_borispol_homepage') { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '1', 
                    'changefreq' => 'always', 
                ]; 
            } 
        } 
 
        $models = CarController::MODEL_FRAME; 
 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('toyota_borispol_used_car_model', ['model' => $model]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $serviceRegulationExclusion = [ 
            'yaris-hybrid', 
            'yaris-cross-hybrid', 
            'corolla-hybrid', 
            'camry-hybrid', 
            'c-hr-hybrid', 
            'highlander-hybrid', 
            'rav4-hybrid', 
            'yaris-cross-hybrid', 
            'yaris-hybrid', 
            'camry-hybrid', 
            'corolla-hybrid', 
            'c-hr-hybrid', 
            'rav4-hybrid', 
            'highlander-hybrid', 
        ]; 
 
        foreach ($models as $model) { 
            if (!in_array($model, $serviceRegulationExclusion)) { 
                $result[] = [ 
                    'url' => $router->generate('toyota_borispol_service_regulations_to_model', ['model' => $model]), 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $posts_car = $this->em->getRepository(Post::class)->getActionsByDealer($this->getDealer(), PostModel::ACTION_TYPE_CAR); 
        $posts_service = $this->em->getRepository(Post::class)->getActionsByDealer($this->getDealer(), PostModel::ACTION_TYPE_SERVICE); 
        $posts = array_merge($posts_car, $posts_service); 
 
        foreach ($posts as $post) { 
            $result[] = [ 
                'url' => $router->generate('toyota_borispol_actions_single', ['url' => $post->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $services = $servicePageService->getServiceByDealer($this->getDealer()); 
        foreach ($services as $service) { 
            foreach ($service['pages'] as $page) { 
                $result[] = [ 
                    'url' => $router->generate('toyota_borispol_service_page', ['url' => $page->getUrl()]), 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $posts = $this->em->getRepository(Post::class)->getNewsByDealer($this->getDealer()); 
 
        /** @var Post $post */ 
        foreach ($posts as $post) { 
            if ($post->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('toyota_borispol_news_single', ['url' => $post->getUrl()]); 
            } else { 
                $url = $router->generate('toyota_borispol_actions_single', ['url' => $post->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', [ 
            'urls' => $result, 
            'route' => 'toyota_odessa_sitemap' 
        ]); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
 
        return $response; 
    } 
 
    public function unicommerce(Request $request): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/unicommerce/unicommerce_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
 
            if ($rName == 'unicommerce_homepage') { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '1', 
                    'changefreq' => 'always', 
                ]; 
            } else { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('unicommerce_car_single_without_group', 
                    ['vehicleUrl' => $car->getUrl(), 'category' => $car->getCategory()->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $vehicleCategories = $this->em->getRepository(Category::class)->findBy(['vehicle_type' => 6]); 
        foreach ($vehicleCategories as $category) { 
            $result[] = [ 
                'url' => $router->generate('unicommerce_car_catalog', ['category' => $category->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', [ 
            'urls' => $result, 
            'route' => 'unicommerce_sitemap' 
        ]); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function citroen(InStockRepository $inStockRepositoryModel, VehicleService $vehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/citroen/citroen_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            if ($rName == 'citroen_homepage') { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '1', 
                    'changefreq' => 'always', 
                ]; 
            } else { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('citroen_card_car', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate('citroen_card_car_configuraion', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $inStock = $inStockRepositoryModel->getByDealer($this->getDealer()); 
 
        /** @var InStock $vehicle */ 
        foreach ($inStock as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('citroen_cars_in_stock_card', ['url' => $vehicle->getUrl()]), 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
 
        $post = $this->em 
            ->getRepository(Post::class) 
            ->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('citroen_about_news_single', ['url' => $one->getUrl()]); 
            } else { 
                $url = $router->generate('citroen_stocks_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('citroen_service_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $usedVehicles = $this->vehicleRepository->getUsedByDealer($this->getDealer()); 
 
        foreach ($usedVehicles as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('citroen_used_car_single', ['url' => $vehicle->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('citroen_model_range_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'honda_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function honda(VehicleService $vehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/honda/honda_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            if ($rName == 'honda_homepage') { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '1', 
                    'changefreq' => 'always', 
                ]; 
            } else { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('honda_card_car', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate('honda_card_car_configuraion', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
 
        $post = $this->em 
            ->getRepository(Post::class) 
            ->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('honda_news_single', ['url' => $one->getUrl()]); 
            } else { 
                $url = $router->generate('honda_stocks_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            if ($model['url'] == '') { 
                continue; 
            } 
 
            $result[] = [ 
                'url' => $router->generate('honda_service_honda_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer(), 32); 
 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('honda_service_acura_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('honda_model_lineup_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'honda_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function mg(VehicleService $vehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/morris_garage/morris_garage_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            if ($rName == 'mg_homepage') { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '1', 
                    'changefreq' => 'always', 
                ]; 
            } else { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('mg_card_car', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate('mg_card_car_configuraion', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
 
        $post = $this->em 
            ->getRepository(Post::class) 
            ->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('mg_about_news_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            if ($model['url'] == '') { 
                continue; 
            } 
 
            $result[] = [ 
                'url' => $router->generate('mg_service_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('mg_model_lineup_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'mg_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function opel(VehicleService $vehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/opel/opel_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
 
            if ($rName == 'opel_about_quality_policy' || 'opel_public_offer') { 
                continue; 
            } 
 
            if ($rName == 'opel_homepage') { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '1', 
                    'changefreq' => 'always', 
                ]; 
            } else { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('opel_card_car', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate('opel_card_car_configuraion', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
 
        $post = $this->em->getRepository(Post::class)->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('opel_about_news_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            if ($model['url'] == '') { 
                continue; 
            } 
 
            $result[] = [ 
                'url' => $router->generate('opel_service_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $usedVehicles = $this->vehicleRepository->getUsedByDealer($this->getDealer()); 
 
        foreach ($usedVehicles as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('opel_used_car_single', ['url' => $vehicle->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $allActions = $this->em->getRepository(Post::class)->getActionsByDealer($this->getDealer()); 
 
        foreach ($allActions as $item) { 
            $result[] = [ 
                'url' => $router->generate('opel_stocks_single', ['url' => $item->getUrl()]), 
                'priority' => '0.6', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('opel_model_lineup_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'opel_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function haval(VehicleService $vehicleService): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/haval/haval_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            if ($rName == 'haval_homepage') { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '1', 
                    'changefreq' => 'always', 
                ]; 
            } else { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.5', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $cars = $this->vehicleRepository->getNewByDealer($this->getDealer()); 
        /** @var Vehicle $car */ 
        foreach ($cars as $car) { 
            $result[] = [ 
                'url' => $router->generate('haval_card_car', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
            $result[] = [ 
                'url' => $router->generate('haval_card_car_configuraion', ['car' => $car->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
 
        $post = $this 
            ->em 
            ->getRepository(Post::class) 
            ->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('haval_about_news_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $models = $vehicleService->getModelsForRegulationsTo($this->getDealer()); 
 
        foreach ($models as $model) { 
            $result[] = [ 
                'url' => $router->generate('haval_service_regulations_to_model', ['model' => $model['url']]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $usedVehicles = $this->vehicleRepository->getUsedByDealer($this->getDealer()); 
 
        foreach ($usedVehicles as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('haval_used_car_single', ['url' => $vehicle->getUrl()]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $allActions = $this->em->getRepository(Post::class)->getActionsByDealer($this->getDealer()); 
 
        foreach ($allActions as $item) { 
            $result[] = [ 
                'url' => $router->generate('haval_stocks_single', ['url' => $item->getUrl()]), 
                'priority' => '0.6', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $pages = $this->em 
            ->getRepository(ModelRangePages::class) 
            ->createQueryBuilder('p') 
            ->where('p.dealer = :dealer') 
            ->andWhere('p.active = 1') 
            ->setParameter('dealer', $this->getDealer()) 
            ->getQuery() 
            ->getResult(); 
 
        if (!empty($pages)) { 
            foreach ($pages as $page) { 
                $result[] = [ 
                    'url' => $router->generate('haval_model_lineup_pages', ['url' => $page->getUrl()]), 
                    'priority' => '0.3', 
                    'changefreq' => 'monthly' 
                ]; 
            } 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'haval_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function marine(Catalog $catalogModel): Response 
    { 
        $root = $this->getParameter('kernel.project_dir'); 
        $routingFile = $root . '/src/DcSiteBundle/Resources/config/routing/marine/marine_sitemap.yml'; 
        $routes = Yaml::parseFile($routingFile); 
        $result = []; 
        $router = $this->router; 
        foreach ($routes as $rName => $route) { 
            try { 
                $url = $router->generate($rName); 
            } catch (Exception $e) { 
                continue; 
            } 
            if ($rName == 'marine_homepage') { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '1', 
                    'changefreq' => 'always', 
                ]; 
            } else { 
                $result[] = [ 
                    'url' => $url, 
                    'priority' => '0.8', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
 
        $vehicles = $catalogModel->getVehicle($this->getDealer(), ['characteristic' => ['url' => 'choven']]); 
 
        /** @var Vehicle $vehicle */ 
        foreach ($vehicles as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('marine_catalog_boats_single', ['model' => $vehicle->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $vehicles = $catalogModel->getVehicle($this->getDealer(), ['characteristic' => ['url' => 'chovnovy_motor']]); 
 
        /** @var Vehicle $vehicle */ 
        foreach ($vehicles as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('marine_catalog_jetskis_single', ['model' => $vehicle->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $vehicles = $catalogModel->getVehicle($this->getDealer(), ['characteristic' => ['url' => 'gidrocikl']]); 
 
        /** @var Vehicle $vehicle */ 
        foreach ($vehicles as $vehicle) { 
            $result[] = [ 
                'url' => $router->generate('marine_catalog_motors_single', ['model' => $vehicle->getUrl()]), 
                'priority' => '0.5', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
 
        $post = $this 
            ->em 
            ->getRepository(Post::class) 
            ->findBy(['dealer' => $this->getDealer(), 'state' => 1]); 
 
        /** @var Post $one */ 
        foreach ($post as $one) { 
            if ($one->getPostType() == PostModel::POST_TYPE_NEWS) { 
                $url = $router->generate('marine_news_single', ['url' => $one->getUrl()]); 
            } 
            $result[] = [ 
                'url' => $url, 
                'priority' => '0.3', 
                'changefreq' => 'monthly', 
            ]; 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', ['urls' => $result, 'route' => 'marine_sitemap']); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
    public function shopAccessorySiteMap(Request $request): Response 
    { 
        $router = $this->router; 
 
        $result = []; 
 
        $result[] = [ 
            'url' => $router->generate('shop_accessory_catalog'), 
            'priority' => '1', 
            'changefreq' => 'daily', 
        ]; 
 
        $serviceWorkAccessory = $this->em->getRepository(ServiceWorkGroup::class)->getGroupsWhereDealerIsNullAndNotServices(); 
 
        /** @var ServiceWorkGroup $item */ 
        foreach ($serviceWorkAccessory as $item) { 
            if ($item->getUrl() != null) { 
                $result[] = [ 
                    'url' => $router->generate('shop_accessory_category', ['categoryUrl' => $item->getUrl()]), 
                    'priority' => '0.8', 
                    'changefreq' => 'daily', 
                ]; 
            } 
        } 
 
        $serviceWorkGroupModel = $this->em->getRepository(ServiceWorkGroup::class)->getGroupsByDealer($this->getDealer()); 
        foreach ($serviceWorkGroupModel as $item) { 
            $result[] = [ 
                'url' => $router->generate('shop_accessory_category_model', ['categoryUrl' => $item['groupUrl'], 'modelUrl' => $item['modelUrl']]), 
                'priority' => '0.8', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $serviceWorkAccessory = $this->em->getRepository(ServiceWork::class)->findBy(['dealer' => $this->getDealer(), 'is_accessory' => true]); 
 
        /** @var ServiceWork $item */ 
        foreach ($serviceWorkAccessory as $item) { 
            $result[] = [ 
                'url' => $router->generate('shop_accessory_page', ['workId' => $item->getId()]), 
                'priority' => '0.6', 
                'changefreq' => 'daily', 
            ]; 
        } 
 
        $response = $this->render('@DcSite/sitemap.xml.twig', [ 
            'urls' => $result, 
            'route' => $request->get('_route') 
        ]); 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
 
        return $response; 
    } 
 
    public function shopImagesSiteMap(Request $request, AccessoryShopService $accessoryShopService, ImageProviderVidi $imageProviderVidi): Response 
    { 
 
 
        $result = []; 
 
        $accessories = $accessoryShopService->getAccessoryByDealer($this->getDealer()); 
        foreach ($accessories as $accessory) { 
            if (!$accessory['gallery']) { 
                continue; 
            } 
            if (count($accessory['gallery']->getGalleryItems()) == 0) { 
                continue; 
            } 
 
            $mediaPaths = []; 
            $galleryItems = $accessory['gallery']->getGalleryItems(); 
 
            foreach ($galleryItems as $galleryItem) { 
                $mediaPaths[] = $request->getHost() . '/uploads/media/' . $imageProviderVidi->generatePath($galleryItem->getMedia()) . 
                    '/' . $galleryItem->getMedia()->getProviderReference(); 
            } 
            $result[] = [ 
                'accessoryUrl' => $request->getHost() . '/product/' . $accessory['id'] . '.html', 
                'mediaPath' => $mediaPaths 
            ]; 
        } 
 
        $response = $this->render( 
            '@DcSite/sitemap-images.xml.twig', 
            ['result' => $result] 
        ); 
 
        $response->headers->set('Content-Type', 'application/xml'); 
        $response->setCharset('utf-8'); 
        return $response; 
    } 
 
}