/**
* Creates or updates a preference for a given user.
*
* @param string $key The key to set
* @param string $value The value to set
*
* @return SystemPreference The user preference
*/
public function setSystemPreference($key, $value)
{
$dql = 'SELECT sp FROM PartKeepr\\SystemPreferenceBundle\\Entity\\SystemPreference sp WHERE sp.preferenceKey = :key';
$query = $this->entityManager->createQuery($dql);
$query->setParameter('key', $key);
try {
$systemPreference = $query->getSingleResult();
} catch (\Exception $e) {
$systemPreference = new SystemPreference();
$systemPreference->setPreferenceKey($key);
$this->entityManager->persist($systemPreference);
}
$systemPreference->setPreferenceValue($value);
$this->entityManager->flush();
return $systemPreference;
}