public async Task LoadAsync(bool isCash, int userId)
        {
            var state = await _tokenAuthenticationStateProvider.GetAuthenticationStateAsync();

            if (userId == -1 && state.User.HasClaim(c => c.Type == Claims.UserId))
            {
                userId = int.Parse(state.User.Claims.First(c => c.Type == Claims.UserId).Value);
            }

            await using var connection = CreateConnection();
            var query = await connection.Accounts.Where(a => a.Cash == isCash && a.UserId == userId).ToListAsync();

            var user = await connection.Users.FirstAsync(u => u.Id == userId);

            var accounts = query.Select(a => new AccountViewModel(_dbService)
            {
                Id   = a.Id,
                Name = a.Name,
                User = user
            })
                           .OrderByDescending(a => a.Name == "Long Term Savings")
                           .ThenByDescending(a => a.Name == "Tithe")
                           .ThenBy(a => a.Name)
                           .ToList();

            foreach (var account in accounts)
            {
                var accountId = account.Id;
                account.Transactions = new ObservableCollection <Transaction>(await connection.Transactions.Where(t => t.AccountId == accountId).OrderByDescending(t => t.Timestamp).ToListAsync());
            }

            Accounts = accounts;
        }