public async Task <Stream> GetTransactionsReport(string assetId)
        {
            var transactionIds  = _assetTransactionsService.GetTransactionsForAsset(assetId);
            var assetDictionary = _assetDefinitionService.GetAssetDefinitionsAsync();

            await Task.WhenAll(transactionIds, assetDictionary);

            var txResps = await _transactionService.GetTransactions(transactionIds.Result.Select(p => p.TransactionId));

            var xlsxData = XlsxTransactionsReportData.Create(
                txResps,
                assetDictionary.Result,
                _network);

            return(await _transactionXlsxRenderer.RenderTransactionReport(xlsxData));
        }
Exemplo n.º 2
0
        public async Task <Stream> GetTransactionsReport(string addressId)
        {
            var assetDefinitionDictionary = _assetDefinitionService.GetAssetDefinitionsAsync();
            var addressTransactionIds     = Retry.Try(() => GetAddressTransactions(addressId).WithTimeout(60 * 1000),
                                                      component: nameof(GetAddressTransactions),
                                                      tryCount: 10,
                                                      secondsToWaitOnFail: 5,
                                                      logger: _log);

            await Task.WhenAll(assetDefinitionDictionary, addressTransactionIds);

            var txResps = await _transactionService.GetTransactions(addressTransactionIds.Result);

            var xlsxData = XlsxTransactionsReportData.Create(
                txResps,
                assetDefinitionDictionary.Result,
                _network);

            return(await _transactionXlsxRenderer.RenderTransactionReport(xlsxData));
        }
        public async Task <Stream> GetTransactionsReport(string blockId)
        {
            var getBlock = _blockService.GetBlock(BlockFeature.Parse(blockId));
            var getAssetDefDictionary = _assetDefinitionService.GetAssetDefinitionsAsync();

            await Task.WhenAll(getBlock, getAssetDefDictionary);

            if (getBlock.Result == null)
            {
                throw new Exception($"Block {blockId} not found");
            }

            var transactionIds = getBlock.Result.Block.Transactions.Select(p => p.GetHash());

            var txResps = await _transactionService.GetTransactions(transactionIds);

            var xlsxData = XlsxTransactionsReportData.Create(
                txResps,
                getAssetDefDictionary.Result,
                _network);

            return(await _transactionXlsxRenderer.RenderTransactionReport(xlsxData));
        }