Beispiel #1
0
        public IActionResult List(int page = 1, int pageSize = 10)
        {
            if (page * pageSize <= StateService.CachedAddressesCount)
            {
                var data = this.state.GetAddressesPage(page, pageSize);
                this.UpdateNeoAndGasBalances(data);

                var result   = data.ToListResult();
                var extended = PagedListMetadataExtended.FromParent(result.MetaData);
                var pages    = extended.TotalItemCount % pageSize == 0
                    ? extended.TotalItemCount / pageSize
                    : extended.TotalItemCount / pageSize + 1;

                extended.TotalItemCount = (int)this.state.MainStats.TotalStats.AddressCount;
                extended.PageCount      = pages;
                result.MetaData         = extended;

                return(this.Ok(result));
            }
            else
            {
                var result = this.addresses.GetPage(page, pageSize);
                this.UpdateNeoAndGasBalances(result);

                return(this.Ok(result.ToListResult()));
            }
        }
Beispiel #2
0
        public async Task <IActionResult> List(
            int page         = 1,
            int pageSize     = 10,
            string blockHash = null,
            string address   = null,
            string asset     = null,
            string type      = null)
        {
            if (!string.IsNullOrEmpty(address))
            {
                var res = this.transactions.TransactionsForAddress(address, page, pageSize);
                return(this.Ok(res.ToListResult()));
            }

            if (!string.IsNullOrEmpty(asset))
            {
                var sw  = System.Diagnostics.Stopwatch.StartNew();
                var res = this.transactions.TransactionsForAsset(asset, page, pageSize);
                sw.Stop();
                Log.Information($"{this.GetType().FullName} from List - ${sw.ElapsedMilliseconds}");
                return(this.Ok(res.ToListResult()));
            }

            if (!string.IsNullOrEmpty(blockHash))
            {
                var result = this.transactions.GetPageTransactions <TransactionListViewModel>(page, pageSize, blockHash);
                return(this.Ok(result.ToListResult()));
            }

            if (page * pageSize <= StateService.CachedTransactionsCount)
            {
                var data   = this.state.GetTransactionsPage(page, pageSize, type);
                var result = data.ToListResult();

                if (string.IsNullOrEmpty(type))
                {
                    var extended = PagedListMetadataExtended.FromParent(result.MetaData);
                    var pages    = extended.TotalItemCount % pageSize == 0
                        ? extended.TotalItemCount / pageSize
                        : extended.TotalItemCount / pageSize + 1;

                    extended.TotalItemCount = (int)this.state.MainStats.TotalStats.TransactionsCount;
                    extended.PageCount      = pages;
                    result.MetaData         = extended;
                }

                return(this.Ok(result));
            }
            else
            {
                var result = this.transactions.GetPageTransactions <TransactionListViewModel>(page, pageSize, type: type);
                return(this.Ok(result.ToListResult()));
            }
        }