From b5d688311dbb1005fef156f16812c7abb06b1164 Mon Sep 17 00:00:00 2001 From: Lukas Ettel <34522828+LukasEttel@users.noreply.github.com> Date: Thu, 26 Mar 2020 15:23:52 +0100 Subject: [PATCH] Refactor of all addFromCsv in Deteils complete Co-authored-by: AndiBuls --- .../gruppen2/controller/WebController.java | 6 +----- .../gruppen2/service/ControllerService.java | 20 +++++++++++++++++-- .../gruppen2/service/ValidationService.java | 14 ------------- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/main/java/mops/gruppen2/controller/WebController.java b/src/main/java/mops/gruppen2/controller/WebController.java index 94fc6a6..f2270a3 100644 --- a/src/main/java/mops/gruppen2/controller/WebController.java +++ b/src/main/java/mops/gruppen2/controller/WebController.java @@ -129,11 +129,7 @@ public class WebController { @RequestParam("group_id") String groupId, @RequestParam(value = "file", required = false) MultipartFile file) throws IOException { Account account = keyCloakService.createAccountFromPrincipal(token); - List userList = new ArrayList<>(); - Group group = userService.getGroupById(UUID.fromString(groupId)); - userList = validationService.checkFile(file, userList, groupId, group, account); - UUID groupUUID = controllerService.getUUID(groupId); - controllerService.addUserList(userList, groupUUID); + controllerService.addUsersFromCsv(account, file, groupId); return "redirect:/gruppen2/details/members/" + groupId; } diff --git a/src/main/java/mops/gruppen2/service/ControllerService.java b/src/main/java/mops/gruppen2/service/ControllerService.java index 0198c75..ff17b07 100644 --- a/src/main/java/mops/gruppen2/service/ControllerService.java +++ b/src/main/java/mops/gruppen2/service/ControllerService.java @@ -92,6 +92,22 @@ public class ControllerService { addUserList(newUsers, groupId); } + public void addUsersFromCsv(Account account, MultipartFile file, String groupId) throws IOException{ + Group group = userService.getGroupById(UUID.fromString(groupId)); + + List newUserList = readCsvFile(file); + removeOldUsersFromNewUsers(group.getMembers(), newUserList); + + UUID groupUUID = getUUID(groupId); + + Long newUserMaximum = adjustUserMaximum((long) newUserList.size(), (long) group.getMembers().size(), group.getUserMaximum()); + if (newUserMaximum > group.getUserMaximum()){ + updateMaxUser(account, groupUUID, newUserMaximum); + } + + addUserList(newUserList, groupUUID); + } + private void removeOldUsersFromNewUsers(List oldUsers, List newUsers) { for (User oldUser : oldUsers) { newUsers.remove(oldUser); @@ -153,8 +169,8 @@ public class ControllerService { eventService.saveEvent(addUserEvent); } - public void addUserList(List users, UUID groupId) { - for (User user : users) { + public void addUserList(List newUsers, UUID groupId) { + for (User user : newUsers) { Group group = userService.getGroupById(groupId); if (group.getMembers().contains(user)) { logger.info("Benutzer " + user.getId() + " ist bereits in Gruppe"); diff --git a/src/main/java/mops/gruppen2/service/ValidationService.java b/src/main/java/mops/gruppen2/service/ValidationService.java index 94148c7..05b6ea8 100644 --- a/src/main/java/mops/gruppen2/service/ValidationService.java +++ b/src/main/java/mops/gruppen2/service/ValidationService.java @@ -108,20 +108,6 @@ public class ValidationService { return false; } - public List checkFile(MultipartFile file, List userList, String groupId, Group group, Account account) { - if (!file.isEmpty()) { - try { - userList = CsvService.read(file.getInputStream()); - if (userList.size() + group.getMembers().size() > group.getUserMaximum()) { - controllerService.updateMaxUser(account, UUID.fromString(groupId), (long) userList.size() + group.getMembers().size()); - } - } catch (IOException ex) { - throw new WrongFileException(file.getOriginalFilename()); - } - } - return userList; - } - /** * Überprüft ob alle Felder richtig gesetzt sind. *