private async Task GetRatesAsync() { if ((DateTime.UtcNow - _lastFetchedAt).TotalDays > Constants.DEFAULTDAYSPERRATEREFRESH) { _rates = await ApiForex.GetRate(_apiKey); _lastFetchedAt = DateTime.UtcNow; } }
private string PrepareMessage() { string fromCurrency; string toCurrency; decimal amount = 0; if (IsInvalidArguments()) { return(Description); } switch (_args.Count) { case 2: fromCurrency = _args[0]; toCurrency = _args[1]; break; case 4: if (!decimal.TryParse(_args[0], out amount)) { amount = 0; } fromCurrency = _args[1]; toCurrency = _args[3]; break; default: return(Description); } try { var culture = new CultureInfo("uk-UA", true); var financeApi = ApiForex.GetRate(_apiKey).Result; var value = financeApi.Convert(toCurrency.ToUpper(culture), fromCurrency.ToUpper(culture), amount); return($"{amount} {fromCurrency} -> {value:0.00} {toCurrency}"); } catch (InvalidOperationException) { // When currency wasn't found return($"Cannot convert from {fromCurrency} to {toCurrency}"); } }
public void NoKeyProvided() { var ApiForexRates = ApiForex.GetRate(""); Assert.NotEqual(200, ApiForexRates.Result.error.code); }
public void CurrenciesInfos() { var CurrenciesInfos = ApiForex.GetCurrenciesInfos("fr", new string[] { "EUR", "THB" }, "json").Result.Where(c => c.Key == "THB").FirstOrDefault().Value.Code; Assert.Equal("THB", CurrenciesInfos); }