public AddressViewModel GetAddress(string addressText, int currentPage, int pageSize = AppSettings.PageSize)
        {
            var addressQueries = new AccountQueries(_context);
            var tokenQueries   = new TokenQueries(_context);

            var account = addressQueries.QueryAccount(addressText);

            if (account != null)
            {
                SoulRate = CoinUtils.GetCoinRate(CoinUtils.SoulId);
                var addressVm = AddressViewModel.FromAddress(account, tokenQueries.QueryTokens().ToList());

                addressVm.Transactions = GetAddressTransactions(addressVm.Address, currentPage, pageSize);

                foreach (var addressVmNativeBalance in addressVm.NativeBalances)
                {
                    addressVmNativeBalance.TxnCount = GetTransactionCount(addressVm.Address);
                }

                SoulRate = CoinUtils.GetCoinRate(CoinUtils.SoulId);
                CalculateAddressSoulValue(new List <AddressViewModel> {
                    addressVm
                });
                return(addressVm);
            }

            if (Address.IsValidAddress(addressText))
            {
                return(new AddressViewModel {
                    Address = addressText, Balance = 0, Name = "anonymous", Value = 0
                });
            }

            return(null);
        }
 private void CalculateAddressSoulValue(List <AddressViewModel> list)
 {
     SoulRate = CoinUtils.GetCoinRate(CoinUtils.SoulId);
     foreach (var address in list)
     {
         var soulBalances = address.NativeBalances.Where(b => b.Token.Symbol == AppSettings.NativeSymbol);
         foreach (var balanceViewModel in soulBalances)
         {
             balanceViewModel.Value = balanceViewModel.Balance * SoulRate;
             address.Value          = balanceViewModel.Value;
         }
     }
 }
Ejemplo n.º 3
0
        public TokenViewModel GetToken(string symbol)
        {
            var tokenQuery = new TokenQueries(_context);
            var token      = tokenQuery.QueryToken(symbol);

            if (token != null)
            {
                SoulRate = token.Symbol == "SOUL" ? CoinUtils.GetCoinRate(CoinUtils.SoulId) : 0;

                return(TokenViewModel.FromToken(token,
                                                AppSettings.MockLogoUrl,
                                                SoulRate));
            }

            return(null);
        }
Ejemplo n.º 4
0
        public List <TokenViewModel> GetTokens()
        {
            var tokenQuery = new TokenQueries(_context);
            var tokenList  = tokenQuery.QueryTokens();
            var tokensList = new List <TokenViewModel>();

            SoulRate = CoinUtils.GetCoinRate(CoinUtils.SoulId);

            foreach (var token in tokenList)
            {
                SoulRate = token.Symbol == "SOUL" ? CoinUtils.GetCoinRate(CoinUtils.SoulId) : 0;
                tokensList.Add(TokenViewModel.FromToken(token,
                                                        AppSettings.MockLogoUrl,
                                                        SoulRate));
            }

            return(tokensList);
        }