public async Task <(List <CurrencyNameDTO>, List <CurrencyNameDTO>)> GetListCurrencyNames(string urlCurrencies, string urlExchangeRate) { CoinloreCurrenciesDTO currencyObject = await GetDataCurrencies(urlCurrencies); CoinloreExchangeRateDTO exchangeRateObject = await GetDataExchangeRate(urlExchangeRate); if (exchangeRateObject.Pairs.Count > 0) { var currenciesReplacement = FilterReplacement(currencyObject, exchangeRateObject); var currenciesApplied = FilterApplied(currenciesReplacement, currencyObject, exchangeRateObject); return(currenciesApplied, currenciesReplacement); } return(null, null); }
public CurrencyNameDTO SetCurrencyName(CurrencyNameDTO data, CoinloreCurrenciesDTO currencies) { foreach (var currency in currencies.Data) { if (!(data.Name is null)) { break; } if (data.Symbol == currency.Symbol) { data.Name = currency.Name; } if (ValidSymbols(data.Symbol)) { data.Name = ReservedSymbols(data.Symbol); } } return(data); }
public List <CurrencyNameDTO> FilterReplacement(CoinloreCurrenciesDTO currencies, CoinloreExchangeRateDTO exchanges) { var result = new List <CurrencyNameDTO>(); exchanges.Pairs.ForEach(pair => { if (!result.Any(currency => currency.Symbol == pair.Quote)) { if (!(pair.Quote is null)) { result.Add(new CurrencyNameDTO() { Symbol = pair.Quote }); } } }); result.ForEach(data => { data = SetCurrencyName(data, currencies); }); return(result); }
public List <CurrencyNameDTO> FilterApplied(List <CurrencyNameDTO> data, CoinloreCurrenciesDTO currencies, CoinloreExchangeRateDTO exchanges) { var initial = new List <CurrencyNameDTO>(); var result = new List <CurrencyNameDTO>(); exchanges.Pairs.ForEach(pair => { if (!initial.Any(currency => currency.Symbol == pair.Base)) { if (!(pair.Base is null) && InvalidSymbols(pair.Base)) { initial.Add(new CurrencyNameDTO() { Symbol = pair.Base }); } } }); result = ValidationApplied(initial, data, exchanges); result.ForEach(data => { data = SetCurrencyName(data, currencies); }); return(result); }