Ejemplo n.º 1
0
        /// <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();
        }