@Loggable(value = LogLevel.TRACE) public AccountDetail getAccountDetail(User user, DeviceInfo deviceInfo) throws AccountManagementException { int accountNumber = deviceInfo.getAccountNo(); try { Account account = getAccount(accountNumber); AccountDetail accountDetail = new AccountDetail(); accountDetail.setDeviceInfo(deviceInfo); accountDetail.setAccount(account); accountDetail.setTopUp(getTopUp(user, account).getTopupAmount()); accountDetail.setUsageHistory( new UsageHistory( getChargeHistory(user, account.getAccountno()), user, account.getAccountno())); return accountDetail; } catch (AccountManagementException e) { throw e; } }