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); }
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) }; }