/** * Get project id's based on selected customers */ private List<Project> getProjects(UserSelectedCriteria userSelectedCriteria) { // No projects selected by the user, use any given customer limitation if (userSelectedCriteria.isEmptyProjects()) { if (!userSelectedCriteria.isEmptyCustomers()) { return projectDao.findProjectForCustomers(userSelectedCriteria.getCustomers(), userSelectedCriteria.isOnlyActiveProjects()); } else { return Lists.newArrayList(); } } else { return userSelectedCriteria.getProjects(); } }
@Override public UsersAndProjects criteriaToUsersAndProjects(UserSelectedCriteria userSelectedCriteria) { boolean noUserRestrictionProvided = userSelectedCriteria.isEmptyDepartments() && userSelectedCriteria.isEmptyUsers(); boolean noProjectRestrictionProvided = userSelectedCriteria.isEmptyCustomers() && userSelectedCriteria.isEmptyProjects(); List<Project> projects; List<User> users; if (!noProjectRestrictionProvided || !noUserRestrictionProvided) { if (noProjectRestrictionProvided) { users = getUsersForSelectedDepartments(userSelectedCriteria); projects = Lists.newArrayList(); } else if (noUserRestrictionProvided) { projects = getProjects(userSelectedCriteria); users = Lists.newArrayList(); } else { users = getUsersForSelectedDepartments(userSelectedCriteria); projects = getProjects(userSelectedCriteria); } } else { users = Lists.newArrayList(); projects = Lists.newArrayList(); } if (userSelectedCriteria.isOnlyBillableProjects() && projects.isEmpty()) { projects = getBillableProjects(userSelectedCriteria); } return new UsersAndProjects(users, projects); }