Skip to content

Commit

Permalink
Cleanups
Browse files Browse the repository at this point in the history
  • Loading branch information
dennisreimann committed Aug 30, 2023
1 parent fb19ff0 commit 26f4448
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 17 deletions.
7 changes: 3 additions & 4 deletions BTCPayServer/Components/WalletNav/Default.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,11 @@
<a asp-controller="UIWallets" asp-action="WalletTransactions" asp-route-walletId="@Model.WalletId" class="unobtrusive-link">
<h2 class="mb-1">@Model.Label</h2>
<div class="text-muted fw-semibold" data-sensitive>
@DisplayFormatter.Currency(Model.Balance, @Model.Network.CryptoCode)
@if (Model.BalanceDefaultCurrency != null)
@DisplayFormatter.Currency(Model.Balance, Model.Network.CryptoCode)
@if (!string.IsNullOrEmpty(Model.BalanceDefaultCurrency))
{
<span>(@DisplayFormatter.Currency(Model.BalanceDefaultCurrency.Value, Model.DefaultCurrency))</span>
<span>(@DisplayFormatter.Currency(Model.BalanceDefaultCurrency, Model.DefaultCurrency))</span>
}

</div>
</a>
<div class="d-flex gap-3 mt-3 mt-sm-0" permission="@Policies.CanModifyStoreSettings">
Expand Down
26 changes: 14 additions & 12 deletions BTCPayServer/Components/WalletNav/WalletNav.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,33 +49,35 @@ public async Task<IViewComponentResult> InvokeAsync(WalletId walletId)
var store = ViewContext.HttpContext.GetStoreData();
var network = _networkProvider.GetNetwork<BTCPayNetwork>(walletId.CryptoCode);
var wallet = _walletProvider.GetWallet(network);
var derivation = store.GetDerivationSchemeSettings(_networkProvider, walletId.CryptoCode);
var defaultCurrency = store.GetStoreBlob().DefaultCurrency;
var balance = (await wallet.GetBalance(derivation?.AccountDerivation)) switch
var derivation = store.GetDerivationSchemeSettings(_networkProvider, walletId.CryptoCode);
var balance = await wallet.GetBalance(derivation?.AccountDerivation) switch
{
{ Available: null, Total: var total } => total,
{ Available: var available } => available
};

decimal? balanceDefaultCurrency = null;
if (defaultCurrency != network.CryptoCode)
{
var rate = (await _rateProvider.GetRatesAsync(default)).FirstOrDefault(pair => pair.CurrencyPair.Right == defaultCurrency && pair.CurrencyPair.Left == network.CryptoCode);

if (rate != null)
balanceDefaultCurrency = balance.GetValue() * rate.BidAsk.Bid;
}

var vm = new WalletNavViewModel
{
WalletId = walletId,
Network = network,
Balance = balance.ShowMoney(network),
BalanceDefaultCurrency = balanceDefaultCurrency,
DefaultCurrency = defaultCurrency,
Label = derivation?.Label ?? $"{store.StoreName} {walletId.CryptoCode} Wallet"
};

if (defaultCurrency != network.CryptoCode)
{
var rates = await _rateProvider.GetRatesAsync(default);
var rate = rates.FirstOrDefault(pair => pair.CurrencyPair.Right == defaultCurrency &&
pair.CurrencyPair.Left == network.CryptoCode);
if (rate != null)
{
var currencyData = _currencies.GetCurrencyData(defaultCurrency, false);
vm.BalanceDefaultCurrency = (balance.GetValue() * rate.BidAsk.Bid).ShowMoney(currencyData.Divisibility);
}
}

return View(vm);
}
}
Expand Down
2 changes: 1 addition & 1 deletion BTCPayServer/Components/WalletNav/WalletNavViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ public class WalletNavViewModel
public BTCPayNetwork Network { get; set; }
public string Label { get; set; }
public string Balance { get; set; }
public decimal? BalanceDefaultCurrency { get; set; }
public string BalanceDefaultCurrency { get; set; }
public string DefaultCurrency { get; set; }
}
}

0 comments on commit 26f4448

Please sign in to comment.