public int GetBlocksCount(string chain = null) { var context = Explorer.AppServices.GetService <ExplorerDbContext>(); var blockQuery = new BlockQueries(context); return(blockQuery.QueryBlocksCount(chain)); }
public BlockQueryServiceTest() { //Mock _moqBlockQueries = new Mock <IBlockQueries>(); // Arrange _sut = new BlockQueries(InitialData.context); }
public List <BlockListViewModel> GetBlocks(int currentPage, int pageSize = AppSettings.PageSize, string chain = null) { var blockQuery = new BlockQueries(_context); var query = blockQuery.QueryBlocks(chain).Skip((currentPage - 1) * pageSize).Take(pageSize); return(query.AsEnumerable() .Select(p => BlockListViewModel.FromBlock(p, blockQuery.QueryBlockTxsCount(p.Hash))) .ToList()); }
public string SearchCommand(string input) { try { if (Address.IsValidAddress(input)) //maybe is address { return($"address/{input}"); } //token var token = new TokenQueries(_context).QueryToken(input.ToUpperInvariant()); if (token != null)// token { return($"token/{token.Symbol}"); } //app var app = new AppQueries(_context).QueryApp(input); if (app != null) { return($"app/{app.Id}"); } //chain var chain = new ChainQueries(_context).QueryChain(input); if (chain != null) { return($"chain/{chain.Address}"); } //hash if (Hash.TryParse(input, out var hash)) { var tx = new TransactionQueries(_context).QueryTransaction(input); if (tx != null) { return($"tx/{tx.Hash}"); } var block = new BlockQueries(_context).QueryBlock(input); if (block != null) { return($"block/{block.Hash}"); } } return(null); } catch (Exception e) { Console.WriteLine(e); return("/home"); } }
public HomeViewModel GetLastestInfo() { var blockQuery = new BlockQueries(_context); var txsQuery = new TransactionQueries(_context); var chainQuery = new ChainQueries(_context); var blocks = blockQuery.QueryLastBlocks(14); var transactions = txsQuery.QueryLastTransactions(15); var blocksVm = blocks.Select(BlockHomeViewModel.FromBlock).ToList(); var txsVm = transactions.Select(TransactionHomeViewModel.FromTransaction).ToList(); // tx history chart calculation var repTxs = txsQuery.QueryLastTransactions(1000, null); var chart = new Dictionary <string, uint>(); foreach (var transaction in repTxs) { var block = transaction.Block; DateTime chartTime = new Timestamp(block.Timestamp); var chartKey = $"{chartTime.Day}/{chartTime.Month}"; if (chart.ContainsKey(chartKey)) { chart[chartKey] += 200; } else { chart[chartKey] = 1; } } int totalChains = chainQuery.QueryChainCount; uint height = chainQuery.QueryChain("main").Height; int totalTransactions = txsQuery.QueryTotalChainTransactionCount(); var vm = new HomeViewModel { Blocks = blocksVm, Transactions = txsVm, Chart = chart, TotalTransactions = totalTransactions, TotalChains = totalChains, BlockHeight = height, }; return(vm); }
public BlockViewModel GetBlock(string input) { var blockQuery = new BlockQueries(_context); var block = int.TryParse(input, out var height) ? blockQuery.QueryBlock(height, "main") : blockQuery.QueryBlock(input);//todo height only works with main if (block != null) { return(BlockViewModel.FromBlock(block)); } return(null); }
public Task <IEnumerable <BlockDetail> > GetEpochBlocks(CancellationToken cancellationToken, uint epochNumber) { return(BlockQueries.GetEpochBlocks(this.GetConnection(), cancellationToken, epochNumber)); }
public Task <Block> GetLatestBlock(CancellationToken cancellationToken) { return(BlockQueries.GetLatestBlock(this.GetConnection(), cancellationToken)); }
public Task <Block> GetLatestBlock(CancellationToken cancellationToken, uint epochNumber) { return(BlockQueries.GetLatestBlockForEpoch(this.GetConnection(), cancellationToken, epochNumber)); }