/// <summary> /// Prepare exchange rate provider model /// </summary> /// <param name="model">Currency exchange rate provider model</param> /// <param name="prepareExchangeRates">Whether to prepare exchange rate models</param> protected virtual async Task PrepareExchangeRateProviderModelAsync(CurrencyExchangeRateProviderModel model, bool prepareExchangeRates) { if (model == null) { throw new ArgumentNullException(nameof(model)); } model.AutoUpdateEnabled = _currencySettings.AutoUpdateEnabled; //prepare available exchange rate providers var availableExchangeRateProviders = await _exchangeRatePluginManager.LoadAllPluginsAsync(); model.ExchangeRateProviders = availableExchangeRateProviders.Select(provider => new SelectListItem { Text = provider.PluginDescriptor.FriendlyName, Value = provider.PluginDescriptor.SystemName, Selected = _exchangeRatePluginManager.IsPluginActive(provider) }).ToList(); //prepare exchange rates if (prepareExchangeRates) { await PrepareExchangeRateModelsAsync(model.ExchangeRates); } }
public async Task CanLoadExchangeRateProviders() { var providers = await _exchangeRatePluginManager.LoadAllPluginsAsync(); providers.Should().NotBeNull(); providers.Any().Should().BeTrue(); }