private async Task GetRatesAsync()
        {
            if ((DateTime.UtcNow - _lastFetchedAt).TotalDays > Constants.DEFAULTDAYSPERRATEREFRESH)
            {
                _rates = await ApiForex.GetRate(_apiKey);

                _lastFetchedAt = DateTime.UtcNow;
            }
        }
Exemplo n.º 2
0
    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}");
        }
    }
Exemplo n.º 3
0
        public void NoKeyProvided()
        {
            var ApiForexRates = ApiForex.GetRate("");

            Assert.NotEqual(200, ApiForexRates.Result.error.code);
        }
Exemplo n.º 4
0
        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);
        }