/// <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 void PrepareExchangeRateProviderModel(CurrencyExchangeRateProviderModel model, bool prepareExchangeRates) { if (model == null) { throw new ArgumentNullException(nameof(model)); } model.AutoUpdateEnabled = _currencySettings.AutoUpdateEnabled; //prepare available exchange rate providers var availableExchangeRateProviders = _exchangeRatePluginManager.LoadAllPlugins(); 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) { PrepareExchangeRateModels(model.ExchangeRates); } }
/// <summary> /// Prepare plugins enabled warning model /// </summary> /// <param name="models">List of system warning models</param> protected virtual void PreparePluginsEnabledWarningModel(List <SystemWarningModel> models) { var plugins = _pluginService.GetPlugins <IPlugin>(); var notEnabled = new List <string>(); foreach (var plugin in plugins) { var isEnabled = true; switch (plugin) { case IPaymentMethod paymentMethod: isEnabled = _paymentPluginManager.IsPluginActive(paymentMethod); break; case IShippingRateComputationMethod shippingRateComputationMethod: isEnabled = _shippingPluginManager.IsPluginActive(shippingRateComputationMethod); break; case IPickupPointProvider pickupPointProvider: isEnabled = _pickupPluginManager.IsPluginActive(pickupPointProvider); break; case ITaxProvider taxProvider: isEnabled = _taxPluginManager.IsPluginActive(taxProvider); break; case IExternalAuthenticationMethod externalAuthenticationMethod: isEnabled = _authenticationPluginManager.IsPluginActive(externalAuthenticationMethod); break; case IWidgetPlugin widgetPlugin: isEnabled = _widgetPluginManager.IsPluginActive(widgetPlugin); break; case IExchangeRateProvider exchangeRateProvider: isEnabled = _exchangeRatePluginManager.IsPluginActive(exchangeRateProvider); break; } if (isEnabled) { continue; } notEnabled.Add(plugin.PluginDescriptor.FriendlyName); } if (notEnabled.Any()) { models.Add(new SystemWarningModel { Level = SystemWarningLevel.Warning, Text = $"{_localizationService.GetResource("Admin.System.Warnings.PluginNotEnabled")}: {string.Join(", ", notEnabled)}" }); } }
/// <summary> /// Prepare plugins enabled warning model /// </summary> /// <param name="models">List of system warning models</param> protected virtual void PreparePluginsEnabledWarningModel(List <SystemWarningModel> models) { var plugins = _pluginService.GetPlugins <IPlugin>(); var notEnabled = new List <string>(); var notEnabledSystemNames = new List <string>(); foreach (var plugin in plugins) { var isEnabled = true; switch (plugin) { case IPaymentMethod paymentMethod: isEnabled = _paymentPluginManager.IsPluginActive(paymentMethod); break; case IShippingRateComputationMethod shippingRateComputationMethod: isEnabled = _shippingPluginManager.IsPluginActive(shippingRateComputationMethod); break; case IPickupPointProvider pickupPointProvider: isEnabled = _pickupPluginManager.IsPluginActive(pickupPointProvider); break; case ITaxProvider taxProvider: isEnabled = _taxPluginManager.IsPluginActive(taxProvider); break; case IExternalAuthenticationMethod externalAuthenticationMethod: isEnabled = _authenticationPluginManager.IsPluginActive(externalAuthenticationMethod); break; case IWidgetPlugin widgetPlugin: isEnabled = _widgetPluginManager.IsPluginActive(widgetPlugin); break; case IExchangeRateProvider exchangeRateProvider: isEnabled = _exchangeRatePluginManager.IsPluginActive(exchangeRateProvider); break; } if (isEnabled) { continue; } notEnabled.Add(plugin.PluginDescriptor.FriendlyName); notEnabledSystemNames.Add(plugin.PluginDescriptor.SystemName); } if (notEnabled.Any()) { //get URL helper var urlHelper = _urlHelperFactory.GetUrlHelper(_actionContextAccessor.ActionContext); models.Add(new SystemWarningModel { Level = SystemWarningLevel.Warning, DontEncode = true, Text = $"{_localizationService.GetResource("Admin.System.Warnings.PluginNotEnabled")}: {string.Join(", ", notEnabled)} (<a href=\"{urlHelper.Action("UninstallAndDeleteUnusedPlugins", "Plugin", new { names=notEnabledSystemNames.ToArray() })}\">{_localizationService.GetResource("Admin.System.Warnings.PluginNotEnabled.AutoFixAndRestart")}</a>)" }); } }