private void UpdateNextCachedExchangeRate(UpdateCachedExchangeRatesState updateCachedExchangeRatesState)
        {
            var currenciesEnumerator = updateCachedExchangeRatesState.CurrenciesEnumerator;

            if (!currenciesEnumerator.MoveNext())
            {
                currenciesEnumerator.Dispose();

                updateCachedExchangeRatesState.Callback(new CachedExchangeRatesUpdateResult(updateCachedExchangeRatesState.UserState));
            }
            else
            {
                var currency = currenciesEnumerator.Current;

                ExchangeCurrency(1, BaseCurrency, currency, false, UpdateCachedExchangeRate, updateCachedExchangeRatesState);
            }
        }
        private void UpdateNextCachedExchangeRate(UpdateCachedExchangeRatesState updateCachedExchangeRatesState)
        {
            var currenciesEnumerator = updateCachedExchangeRatesState.CurrenciesEnumerator;

            if (!currenciesEnumerator.MoveNext())
            {
                currenciesEnumerator.Dispose();

                updateCachedExchangeRatesState.Callback(new CachedExchangeRatesUpdateResult(updateCachedExchangeRatesState.UserState));
            }
            else
            {
                var currency = currenciesEnumerator.Current;

                ExchangeCurrency(1, BaseCurrency, currency, false, UpdateCachedExchangeRate, updateCachedExchangeRatesState);
            }
        }