public async Task CompareAccountHoldings()
        {
            IBlockchainInfoService blockchainInfoService = Instantiate <IBlockchainInfoService>();
            IBlockchainClient      blockchainClient      = Instantiate <IBlockchainClient>();

            IEnumerable <string> accounts = new List <string>();

            using (var uow = NewUnitOfWork())
            {
                accounts = NewRepository <Account>(uow).GetAs(a => true, a => a.Hash);
            }

            foreach (var account in accounts)
            {
                var databaseResult = blockchainInfoService.GetAccountInfo(account);
                Assert.True(databaseResult.Successful, $"Retrieving account {account} from database failed.");

                var blockchainResult = await blockchainClient.GetAccountInfo(account);

                Assert.True(blockchainResult.Successful, $"Retrieving account {account} from blockchain failed.");

                var accountInfoDto       = databaseResult.Data;
                var accountBlockchainDto = blockchainResult.Data;

                Assert.Equal(accountBlockchainDto.Holdings.Count, accountInfoDto.Holdings.Count);

                foreach (var holdingInfo in accountInfoDto.Holdings)
                {
                    var holdingBlockchain = accountBlockchainDto.Holdings
                                            .FirstOrDefault(h => h.AssetHash == holdingInfo.AssetHash);

                    Assert.NotNull(holdingBlockchain);
                    Assert.Equal(holdingBlockchain.Balance, holdingInfo.Balance);
                }
            }
        }
 public BlockchainInfoController(IBlockchainInfoService blockchainInfoService)
 {
     _blockchainInfoService = blockchainInfoService;
 }