public function actToProspect(string $constant, array $contact): void
{
/** @var Prospect $prospect */
$prospect = $this->hydratorManager->hydrate($contact, ProspectHydrator::class);
try {
/** @var Prospect $prospectExisting */
$prospectExisting = $this->sqlServerEntityManager->getRepository(Prospect::class)->findOneBy(['idBitrix' => $prospect->getIdBitrix()]);
if ($prospectExisting) {
if(BitrixEventsEnum::ONCRMCONTACTUPDATE === $constant) {
$prospect->setId($prospectExisting->getId());
} elseif ($constant === BitrixEventsEnum::ONCRMCONTACTDELETE) {
$this->sqlServerEntityManager->remove($prospect);
}
} else {
$this->sqlServerEntityManager->persist($prospect);
}
$this->sqlServerEntityManager->flush();
} catch (\Exception $e) {
throw new \Exception('Erreur de connexion avec la base de données : ' . $e->getMessage(), 500);
}
}