public async Task <IViewComponentResult> InvokeAsync(StoreData store) { var walletId = new WalletId(store.Id, CryptoCode); var data = await _walletHistogramService.GetHistogram(store, walletId, DefaultType); var vm = new StoreWalletBalanceViewModel { Store = store, CryptoCode = CryptoCode, WalletId = walletId, Series = data?.Series, Labels = data?.Labels, Balance = data?.Balance ?? 0, Type = DefaultType }; return(View(vm)); }
public async Task <IViewComponentResult> InvokeAsync(StoreData store) { var cryptoCode = _networkProvider.DefaultNetwork.CryptoCode; var walletId = new WalletId(store.Id, cryptoCode); var data = await _walletHistogramService.GetHistogram(store, walletId, DefaultType); var defaultCurrency = store.GetStoreBlob().DefaultCurrency; var vm = new StoreWalletBalanceViewModel { Store = store, CryptoCode = cryptoCode, CurrencyData = _currencies.GetCurrencyData(defaultCurrency, true), DefaultCurrency = defaultCurrency, WalletId = walletId, Type = DefaultType }; if (data != null) { vm.Balance = data.Balance; vm.Series = data.Series; vm.Labels = data.Labels; } else { using CancellationTokenSource cts = new (TimeSpan.FromSeconds(3)); var wallet = _walletProvider.GetWallet(_networkProvider.DefaultNetwork); var derivation = store.GetDerivationSchemeSettings(_networkProvider, walletId.CryptoCode); var balance = await wallet.GetBalance(derivation.AccountDerivation, cts.Token); vm.Balance = balance.Available.GetValue(); } return(View(vm)); }