package eu.eudat.managers; import eu.eudat.dao.entities.DMPDao; import eu.eudat.dao.entities.DatasetDao; import eu.eudat.dao.entities.ProjectDao; import eu.eudat.entities.UserInfo; import eu.eudat.models.dashboard.DashBoardStatistics; import eu.eudat.models.security.Principal; public class DashBoardManager { public DashBoardStatistics getStatistics(DatasetDao datasetRepository, DMPDao dataManagementPlanRepository, ProjectDao projectRepository) { DashBoardStatistics statistics = new DashBoardStatistics(); statistics.setTotalDataManagementPlanCount(dataManagementPlanRepository.asQueryable().count()); statistics.setTotalDataSetCount(datasetRepository.asQueryable().count()); statistics.setTotalProjectCount(projectRepository.asQueryable().count()); return statistics; } public DashBoardStatistics getMeStatistics(DatasetDao datasetRepository, DMPDao dataManagementPlanRepository, ProjectDao projectRepository, Principal principal) { DashBoardStatistics statistics = new DashBoardStatistics(); UserInfo user = new UserInfo(); user.setId(principal.getId()); statistics.setTotalDataManagementPlanCount(dataManagementPlanRepository.asQueryable().where((builder, root) -> builder.equal(root.get("creator").get("id"), principal.getId())).count()); statistics.setTotalDataSetCount(datasetRepository.asQueryable().where((builder, root) -> builder.equal(root.get("creator").get("id"), principal.getId())).count()); statistics.setTotalProjectCount(projectRepository.asQueryable().where((builder, root) -> builder.equal(root.get("creationUser").get("id"), principal.getId())).count()); return statistics; } }