@Override
  public List<AssignmentAggregateReportElement> getHoursPerAssignmentInRange(
      Integer userId, DateRange dateRange) {
    List<AssignmentAggregateReportElement> assignmentAggregateReportElements;

    List<User> users = new ArrayList<>();
    users.add(new User(userId));
    assignmentAggregateReportElements =
        reportAggregatedDAO.getCumulatedHoursPerAssignmentForUsers(users, dateRange);

    return assignmentAggregateReportElements;
  }
  private List<AssignmentAggregateReportElement> findAggregates(
      List<User> users, List<Project> projects, DateRange reportRange) {
    List<AssignmentAggregateReportElement> aggregates = new ArrayList<>();

    if (users.isEmpty() && projects.isEmpty()) {
      aggregates = reportAggregatedDAO.getCumulatedHoursPerAssignment(reportRange);
    } else if (projects.isEmpty()) {
      if (!CollectionUtils.isEmpty(users)) {
        aggregates = reportAggregatedDAO.getCumulatedHoursPerAssignmentForUsers(users, reportRange);
      }
    } else if (users.isEmpty()) {
      if (!CollectionUtils.isEmpty(projects)) {
        aggregates =
            reportAggregatedDAO.getCumulatedHoursPerAssignmentForProjects(projects, reportRange);
      }
    } else {
      if (!CollectionUtils.isEmpty(users) && !CollectionUtils.isEmpty(projects)) {
        aggregates =
            reportAggregatedDAO.getCumulatedHoursPerAssignmentForUsers(
                users, projects, reportRange);
      }
    }
    return aggregates;
  }