/**
  * Send overdue tasks
  *
  * @access public
  */
 public function sendOverdueTaskNotifications(InputInterface $input)
 {
     $tasks = $this->taskFinder->getOverdueTasks();
     if ($input->getOption('group')) {
         $user_tasks = array();
         $user_by_task = array();
         $projects = array();
         foreach ($this->groupByColumn($tasks, 'project_id') as $project_id => $project_tasks) {
             $users = $this->userNotification->getUsersWithNotificationEnabled($project_id);
             foreach ($users as $user) {
                 foreach ($project_tasks as $task) {
                     if ($this->userNotificationFilter->shouldReceiveNotification($user, array('task' => $task))) {
                         $user_tasks[$user['id']][] = $task;
                         $user_by_task[$user['id']][] = $user;
                         $projects[$user['id']][$task['project_id']] = $task['project_name'];
                     }
                 }
             }
         }
         if (!empty($user_tasks)) {
             $this->sendGroupUserOverdueTaskNotifications($user_tasks, $user_by_task, $projects);
         }
     } else {
         foreach ($this->groupByColumn($tasks, 'project_id') as $project_id => $project_tasks) {
             $users = $this->userNotification->getUsersWithNotificationEnabled($project_id);
             foreach ($users as $user) {
                 $this->sendUserOverdueTaskNotifications($user, $project_tasks);
             }
         }
     }
     if ($input->getOption('admin')) {
         $overdue_tasks = array();
         $projects = array();
         $project_managers = array();
         foreach ($this->groupByColumn($tasks, 'project_id') as $project_id => $project_tasks) {
             $users = $this->userNotification->getUsersWithNotificationEnabled($project_id);
             foreach ($project_tasks as $task) {
                 $managers = ProjectPermission::getManagers($task['project_id']);
                 $overdue_tasks[$project_id][] = $task;
                 $projects[$task['project_id']] = $task['project_name'];
                 $project_managers[$task['project_id']] = $managers;
             }
         }
         if (!empty($overdue_tasks)) {
             $this->sendOverdueTaskNotificationsToAdmin($overdue_tasks, $projects, $project_managers);
         }
     }
     return $tasks;
 }