1

Refactor of all addFromCsv in Deteils complete

Co-authored-by: AndiBuls<andreas.buls@uni-duesseldorf.de>
This commit is contained in:
Lukas Ettel
2020-03-26 15:23:52 +01:00
parent 566c99565a
commit b5d688311d
3 changed files with 19 additions and 21 deletions

View File

@ -129,11 +129,7 @@ public class WebController {
@RequestParam("group_id") String groupId, @RequestParam("group_id") String groupId,
@RequestParam(value = "file", required = false) MultipartFile file) throws IOException { @RequestParam(value = "file", required = false) MultipartFile file) throws IOException {
Account account = keyCloakService.createAccountFromPrincipal(token); Account account = keyCloakService.createAccountFromPrincipal(token);
List<User> userList = new ArrayList<>(); controllerService.addUsersFromCsv(account, file, groupId);
Group group = userService.getGroupById(UUID.fromString(groupId));
userList = validationService.checkFile(file, userList, groupId, group, account);
UUID groupUUID = controllerService.getUUID(groupId);
controllerService.addUserList(userList, groupUUID);
return "redirect:/gruppen2/details/members/" + groupId; return "redirect:/gruppen2/details/members/" + groupId;
} }

View File

@ -92,6 +92,22 @@ public class ControllerService {
addUserList(newUsers, groupId); addUserList(newUsers, groupId);
} }
public void addUsersFromCsv(Account account, MultipartFile file, String groupId) throws IOException{
Group group = userService.getGroupById(UUID.fromString(groupId));
List<User> 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<User> oldUsers, List<User> newUsers) { private void removeOldUsersFromNewUsers(List<User> oldUsers, List<User> newUsers) {
for (User oldUser : oldUsers) { for (User oldUser : oldUsers) {
newUsers.remove(oldUser); newUsers.remove(oldUser);
@ -153,8 +169,8 @@ public class ControllerService {
eventService.saveEvent(addUserEvent); eventService.saveEvent(addUserEvent);
} }
public void addUserList(List<User> users, UUID groupId) { public void addUserList(List<User> newUsers, UUID groupId) {
for (User user : users) { for (User user : newUsers) {
Group group = userService.getGroupById(groupId); Group group = userService.getGroupById(groupId);
if (group.getMembers().contains(user)) { if (group.getMembers().contains(user)) {
logger.info("Benutzer " + user.getId() + " ist bereits in Gruppe"); logger.info("Benutzer " + user.getId() + " ist bereits in Gruppe");

View File

@ -108,20 +108,6 @@ public class ValidationService {
return false; return false;
} }
public List<User> checkFile(MultipartFile file, List<User> 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. * Überprüft ob alle Felder richtig gesetzt sind.
* *