diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java index 5173796d37d63ecca782c73652fa1ed4bdea42b0..583ce5c1268dd647a5b77244dd0c608585111c7e 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountController.java @@ -159,7 +159,7 @@ public class AccountController extends BaseController } else { - updateExistingAccount(account); + accountService.updateExistingAccount(account); } if(request.getSession().getAttribute("database") != null) @@ -169,33 +169,4 @@ public class AccountController extends BaseController return "redirect:/accounts"; } - - private void updateExistingAccount(Account newAccount) - { - Optional<Account> existingAccountOptional = accountService.getRepository().findById(newAccount.getID()); - if(existingAccountOptional.isPresent()) - { - Account existingAccount = existingAccountOptional.get(); - existingAccount.setName(newAccount.getName()); - existingAccount.setIcon(newAccount.getIcon()); - existingAccount.setType(AccountType.CUSTOM); - existingAccount.setAccountState(newAccount.getAccountState()); - accountService.getRepository().save(existingAccount); - - if(existingAccount.isDefault() && existingAccount.getAccountState() != AccountState.FULL_ACCESS) - { - // set any activated account as new default account - accountService.unsetDefaultForAllAccounts(); - List<Account> activatedAccounts = accountService.getRepository().findAllByTypeAndAccountStateOrderByNameAsc(AccountType.CUSTOM, AccountState.FULL_ACCESS); - Account newDefaultAccount = activatedAccounts.get(0); - accountService.setAsDefaultAccount(newDefaultAccount.getID()); - } - - if(existingAccount.isSelected() && existingAccount.getAccountState() == AccountState.HIDDEN) - { - // select "all accounts" as selected account - accountService.selectAccount(accountService.getRepository().findAllByType(AccountType.ALL).get(0).getID()); - } - } - } } \ No newline at end of file diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java index b1e17c04c7a50bdd5ddd1b8b9309c8be5788ee78..fa6b3e95f2b036f1bedd6fe4d7d22492e0b279f9 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/AccountService.java @@ -218,4 +218,35 @@ public class AccountService implements Resetable, AccessAllEntities<Account> accountRepository.save(currentAccount); } } + + public void updateExistingAccount(Account newAccount) + { + Optional<Account> existingAccountOptional = accountRepository.findById(newAccount.getID()); + if(existingAccountOptional.isEmpty()) + { + return; + } + + Account existingAccount = existingAccountOptional.get(); + existingAccount.setName(newAccount.getName()); + existingAccount.setIcon(newAccount.getIcon()); + existingAccount.setType(AccountType.CUSTOM); + existingAccount.setAccountState(newAccount.getAccountState()); + accountRepository.save(existingAccount); + + if(existingAccount.isDefault() && existingAccount.getAccountState() != AccountState.FULL_ACCESS) + { + // set any activated account as new default account + unsetDefaultForAllAccounts(); + List<Account> activatedAccounts = accountRepository.findAllByTypeAndAccountStateOrderByNameAsc(AccountType.CUSTOM, AccountState.FULL_ACCESS); + Account newDefaultAccount = activatedAccounts.get(0); + setAsDefaultAccount(newDefaultAccount.getID()); + } + + if(existingAccount.isSelected() && existingAccount.getAccountState() == AccountState.HIDDEN) + { + // select "all accounts" as selected account + selectAccount(accountRepository.findAllByType(AccountType.ALL).get(0).getID()); + } + } }