/**
  * @param JobNursery      $jobNursery
  * @param ArrayCollection $originalPeriods
  * @param bool            $flush
  */
 public function cleanPeriods(JobNursery $jobNursery, ArrayCollection $originalPeriods, $flush = true)
 {
     foreach ($originalPeriods as $period) {
         if (false === $jobNursery->getPeriods()->contains($period)) {
             $this->manager->remove($period);
         }
     }
     if ($flush) {
         $this->manager->flush();
     }
 }
 /**
  * @param JobNursery $jobNursery
  * @param Request    $request
  *
  * @return JsonResponse
  *
  * @Route("/{id}/deactivate", requirements={"id": "^\d+$"}, name="app_job_nurseries_deactivate", methods="PATCH")
  * @Security("has_role('ROLE_CALD_NURS_ACTIV')")
  */
 public function deactivateAction(JobNursery $jobNursery, Request $request)
 {
     $this->assertXmlHttpRequest($request);
     $jobNursery->setActive(false);
     $this->get('doctrine.orm.entity_manager')->flush();
     return new JsonResponse(['message' => $this->get('translator')->trans('job_nurseries.message.inactive')]);
 }
 /**
  * @param ExecutionContextInterface $context
  *
  * @Assert\Callback
  */
 public function validatePeriods(ExecutionContextInterface $context)
 {
     if ($this->jobNursery->isSerial() !== $this->isSerialType()) {
         $context->buildViolation('job_nursery.period_serial')->atPath('type')->addViolation();
     }
 }