<?php
namespace OfficeBrain\Bundle\CompareProductBundle\Manager\Service;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Security\Core\SecurityContext;
use Symfony\Component\Translation\Translator;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\Flash\FlashBag;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use OfficeBrain\Bundle\CompareProductBundle\Manager\Extended as CompareProductManager;

class CompareProductService
{
    public static function initFactory($entityManager, $request, $sessionManager, $productDetailManager, $emailManager, $twig, $commonLibraryManager, $twigExtension)
    {
        $projectSetting = $request->get('project_setting');
        $userId = $projectSetting['user_id'];

        if ($userId>0) {
            $classInstance = new CompareProductManager\CompareProductRegisteredExtended($entityManager, $request, $sessionManager, $productDetailManager, $emailManager,$twig, $commonLibraryManager, $twigExtension);
        } else {
            $classInstance = new CompareProductManager\CompareProductGuestExtended($entityManager, $request, $sessionManager, $productDetailManager, $emailManager,$twig, $commonLibraryManager, $twigExtension);
        }
        
        unset($userId);
        unset($projectSetting);
        return $classInstance;
    }
}
