protected PluginModel PreparePluginModel(PluginDescriptor pluginDescriptor, bool forList = true) { var model = pluginDescriptor.ToModel(); // Using GetResource because T could fallback to NullLocalizer here. model.Group = Services.Localization.GetResource("Admin.Plugins.KnownGroup." + pluginDescriptor.Group); if (forList) { model.FriendlyName = pluginDescriptor.GetLocalizedValue(Services.Localization, "FriendlyName"); model.Description = pluginDescriptor.GetLocalizedValue(Services.Localization, "Description"); } // Locales AddLocales(_languageService, model.Locales, (locale, languageId) => { locale.FriendlyName = pluginDescriptor.GetLocalizedValue(Services.Localization, "FriendlyName", languageId, false); locale.Description = pluginDescriptor.GetLocalizedValue(Services.Localization, "Description", languageId, false); }); // Stores model.SelectedStoreIds = Services.Settings.GetSettingByKey <string>(pluginDescriptor.GetSettingKey("LimitedToStores")).ToIntArray(); // Icon model.IconUrl = _pluginMediator.GetIconUrl(pluginDescriptor); if (pluginDescriptor.Installed) { // specify configuration URL only when a plugin is already installed if (pluginDescriptor.IsConfigurable) { model.ConfigurationUrl = Url.Action("ConfigurePlugin", new { systemName = pluginDescriptor.SystemName }); if (!forList) { var configurable = pluginDescriptor.Instance() as IConfigurable; string actionName; string controllerName; RouteValueDictionary routeValues; configurable.GetConfigurationRoute(out actionName, out controllerName, out routeValues); if (actionName.HasValue() && controllerName.HasValue()) { model.ConfigurationRoute = new RouteInfo(actionName, controllerName, routeValues); } } } // License label PrepareLicenseLabelModel(model.LicenseLabel, pluginDescriptor); } return(model); }
protected PluginModel PreparePluginModel(PluginDescriptor pluginDescriptor, bool forList = true) { var model = pluginDescriptor.ToModel(); model.Group = T("Admin.Plugins.KnownGroup." + pluginDescriptor.Group); if (forList) { model.FriendlyName = pluginDescriptor.GetLocalizedValue(_services.Localization, "FriendlyName"); model.Description = pluginDescriptor.GetLocalizedValue(_services.Localization, "Description"); } //locales AddLocales(_languageService, model.Locales, (locale, languageId) => { locale.FriendlyName = pluginDescriptor.GetLocalizedValue(_services.Localization, "FriendlyName", languageId, false); locale.Description = pluginDescriptor.GetLocalizedValue(_services.Localization, "Description", languageId, false); }); // Stores model.SelectedStoreIds = _services.Settings.GetSettingByKey <string>(pluginDescriptor.GetSettingKey("LimitedToStores")).ToIntArray(); // Icon model.IconUrl = _pluginMediator.GetIconUrl(pluginDescriptor); if (pluginDescriptor.Installed) { // specify configuration URL only when a plugin is already installed if (pluginDescriptor.IsConfigurable) { model.ConfigurationUrl = Url.Action("ConfigurePlugin", new { systemName = pluginDescriptor.SystemName }); if (!forList) { var configurable = pluginDescriptor.Instance() as IConfigurable; string actionName; string controllerName; RouteValueDictionary routeValues; configurable.GetConfigurationRoute(out actionName, out controllerName, out routeValues); if (actionName.HasValue() && controllerName.HasValue()) { model.ConfigurationRoute = new RouteInfo(actionName, controllerName, routeValues); } } } if (LicenseChecker.IsLicensablePlugin(pluginDescriptor)) { // we always show license button to serve ability to delete a key model.IsLicensable = true; model.LicenseUrl = Url.Action("LicensePlugin", new { systemName = pluginDescriptor.SystemName }); var license = LicenseChecker.GetLicense(pluginDescriptor.SystemName); if (license != null) // license\plugin has been used { model.LicenseState = license.State; model.TruncatedLicenseKey = license.TruncatedLicenseKey; model.RemainingDemoUsageDays = license.RemainingDemoDays; } } } return(model); }