@page "/ExchangeClient" @inject IBinanceClient binanceClient @inject IBitfinexClient bitfinexClient @inject IBittrexClient bittrexClient @inject IBybitClient bybitClient @inject ICoinExClient coinexClient @inject IFTXClient ftxClient @inject IHuobiClient huobiClient @inject IKrakenClient krakenClient @inject IKucoinClient kucoinClient @using Binance.Net.Clients.SpotApi @using Bitfinex.Net.Clients.SpotApi @using Bittrex.Net.Clients.SpotApi @using Bybit.Net.Clients.SpotApi @using CoinEx.Net.Clients.SpotApi @using CryptoExchange.Net.ExchangeInterfaces @using FTX.Net.Clients.TradeApi @using Huobi.Net.Clients.SpotApi @using Kraken.Net.Clients.SpotApi @using Kucoin.Net.Clients.SpotApi

ETH-BTC prices:

@foreach(var price in _prices) {
@price.Key: @price.Value
} @code{ private Dictionary _prices = new Dictionary(); protected override async Task OnInitializedAsync() { var clients = new IExchangeClient[] { binanceClient.SpotApi.AsExchangeClient(), bitfinexClient.SpotApi.AsExchangeClient(), bittrexClient.SpotApi.AsExchangeClient(), bybitClient.SpotApi.AsExchangeClient(), coinexClient.SpotApi.AsExchangeClient(), ftxClient.TradeApi.AsExchangeClient(), huobiClient.SpotApi.AsExchangeClient(), krakenClient.SpotApi.AsExchangeClient(), kucoinClient.SpotApi.AsExchangeClient() }; var tasks = clients.Select(c => (c.ExchangeName, c.GetTickerAsync(c.GetSymbolName("ETH", "BTC")))); await Task.WhenAll(tasks.Select(t => t.Item2)); foreach(var task in tasks) { if(task.Item2.Result.Success) // TODO new version _prices.Add(task.Item1, task.Item2.Result.Data.CommonHighPrice); } } }