* * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ namespace Chill\TaskBundle\Templating\UI; use Chill\MainBundle\Templating\UI\NotificationCounterInterface; use Chill\MainBundle\Entity\User; use Chill\TaskBundle\Repository\SingleTaskRepository; /** * * * @author Julien Fastré */ class CountNotificationTask implements NotificationCounterInterface { /** * * @var SingleTaskRepository */ protected $singleTaskRepository; public function __construct(SingleTaskRepository $singleTaskRepository) { $this->singleTaskRepository = $singleTaskRepository; } public function addNotification(User $u): int { $params = [ 'user' => $u, 'is_closed' => false ]; $sum = 0; foreach ([ SingleTaskRepository::DATE_STATUS_ENDED, SingleTaskRepository::DATE_STATUS_WARNING] as $status) { $sum += $this->singleTaskRepository->countByParameters( \array_merge($params, [ 'date_status' => $status ]) ); } return $sum; } }