/** * @param \VersionControl\GitControlBundle\Entity\Project $project * * @return \VersionControl\GitControlBundle\Entity\ProjectEnvironment * * @throws \Exception */ public function getProjectEnviromment(Project $project) { if ($this->session->has('projectEnvironment' . $project->getId())) { $projectEnvironmentId = $this->session->get('projectEnvironment' . $project->getId()); $currentProjectEnvironment = $this->em->getRepository('VersionControlGitControlBundle:ProjectEnvironment')->find($projectEnvironmentId); if ($currentProjectEnvironment->getProject()->getId() === $project->getId()) { return $currentProjectEnvironment; } else { throw new \Exception('Project Id does not match current project'); } } else { $currentProjectEnvironment = $project->getProjectEnvironment()->first(); } return $currentProjectEnvironment; }