예제 #1
0
            private bool TryInitializeCurrencyRatingProvider(Currency source, IEnumerable <ICurrencyRatingProvider> currencyRatingProviders)
            {
                var selectedProvider = currencyRatingProviders.SingleOrDefault(provider => provider.Source == source);

                if (selectedProvider == null)
                {
                    return(false);
                }

                CurrencyRatingProvider = selectedProvider;
                return(true);
            }
예제 #2
0
        public GetCurrencyCommand()
        {
            var rubToUsdProvider = new RubToUsdCurrencyProvider();
            var usdToRubProvider = new UsdToRubCurrencyProvider();
            var rubToEurProvider = new RubToEurCurrencyProvider();
            var eurToRubProvider = new EurToRubCurrencyProvider();
            var usdToEurProvider = new UsdToEurCurrencyProvider();
            var eurToUsdProvider = new EurToUsdCurrencyProvider();
            var rubToGbpProvider = new RubToGbpCurrencyProvider();
            var gbpToRubProvider = new GbpToRubCurrencyProvider();
            var eurToGbpProvider = new EurToGbpCurrencyProvider();
            var gbpToEurProvider = new GbpToEurCurrencyProvider();
            var usdToGbpProvider = new UsdToGbpCurrencyProvider();
            var gbpToUsdProvider = new GbpToUsdCurrencyProvider();

            var btcToUsdProvier = new BtcToUsdCurrencyProvider();

            _currencyToAnotherRateProviders = new ICurrencyToAnotherRateProvider[]
            {
                rubToUsdProvider,
                usdToRubProvider,
                rubToEurProvider,
                eurToRubProvider,
                usdToEurProvider,
                eurToUsdProvider,
                rubToGbpProvider,
                gbpToRubProvider,
                eurToGbpProvider,
                gbpToEurProvider,
                usdToGbpProvider,
                gbpToUsdProvider,
                btcToUsdProvier
            };

            _currencyRatingProviders = new ICurrencyRatingProvider[]
            {
                new CurrencyRatingProvider(Currency.RUB, rubToUsdProvider, rubToEurProvider, rubToGbpProvider),
                new CurrencyRatingProvider(Currency.USD, usdToRubProvider, usdToEurProvider, usdToGbpProvider),
                new CurrencyRatingProvider(Currency.EUR, eurToUsdProvider, eurToRubProvider, eurToGbpProvider),
                new CurrencyRatingProvider(Currency.GBP, gbpToUsdProvider, gbpToEurProvider, gbpToRubProvider),
                new CurrencyRatingProvider(Currency.BTC, btcToUsdProvier)
            };
        }