public void backfill()

in tests-creation/backfill-service/java/src/main/java/com/epam/aicode/java/BackfillService.java [17:49]


    public void backfill() {
        Map<String, Account> accounts = new HashMap<>();

        List<Transfer> transfers = srcSystem.getTransfers();
        for (Transfer transfer : transfers) {
            String accountId = transfer.getAccountId();
            Account account = accounts.get(accountId);
            if (account == null) {
                account = new Account(accountId, transfer.getAmount(), transfer.getDate());
                accounts.put(accountId, account);
            }
            else
            {
                account.setCurrentAmount(account.getCurrentAmount().add(transfer.getAmount()));
                Date updateDate = account.getUpdateDate();
                Date transferDate = transfer.getDate();
                if (updateDate.before(transferDate)) {
                    account.setUpdateDate(transferDate);
                }
            }
        }

        for (Account account : accounts.values()) {
            Account dstAccount = dstSystem.getAccount(account.getAccountId());
            if (dstAccount == null) {
                dstSystem.createAccount(account);
            } else {
                if (!dstAccount.equals(account)) {
                    dstSystem.updateAccount(account);
                }
            }
        }
    }