projectRepository = $projectRepository; $this->elementFieldRepository = $elementFieldRepository; } public function validate(ProjectIdView $projectIdView): ?Project { $project = $this->projectRepository->findById($projectIdView->id); foreach ($project->getElementTypes() as $elementType) { foreach ($elementType->getElements() as $element) { try { $this->elementFieldRepository->validate($project->getId()); } catch (Exception $e) { return false; } } } $project->setDraft(0); return $this->projectRepository->update($project); } }