public IActionResult MethodUpdate(AuthenticationMethodModel model) { var eam = _openAuthenticationService.LoadExternalAuthenticationMethodBySystemName(model.SystemName); if (eam.IsMethodActive(_externalAuthenticationSettings)) { if (!model.IsActive) { //mark as disabled _externalAuthenticationSettings.ActiveAuthenticationMethodSystemNames.Remove(eam.PluginDescriptor.SystemName); _settingService.SaveSetting(_externalAuthenticationSettings); } } else { if (model.IsActive) { //mark as active _externalAuthenticationSettings.ActiveAuthenticationMethodSystemNames.Add(eam.PluginDescriptor.SystemName); _settingService.SaveSetting(_externalAuthenticationSettings); } } var pluginDescriptor = eam.PluginDescriptor; pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); return(new NullJsonResult()); }
public ActionResult UpdateWidget([Bind(Exclude = "ConfigurationRouteValues")] WidgetModel model) { //var settingModel = _settingService.UpdateSetting(); if (model == null) { return(RedirectToAction("AllWidgets")); } var widget = _widgetService.LoadWidgetBySystemName(model.SystemName); if (widget.IsWidgetActive(_widgetSettings)) { if (!model.IsActive) { _widgetSettings.ActiveWidgetSystemNames.Remove(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } else { if (model.IsActive) { //mark as active _widgetSettings.ActiveWidgetSystemNames.Add(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } var pluginDescriptor = widget.PluginDescriptor; pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); _pluginFinder.ReloadPlugins(); return(new JsonResult()); }
public IActionResult ProviderUpdate(ShippingRateComputationMethodModel model) { var srcm = _shippingService.LoadShippingRateComputationMethodBySystemName(model.SystemName); if (srcm.IsShippingRateComputationMethodActive(_shippingSettings)) { if (!model.IsActive) { //mark as disabled _shippingSettings.ActiveShippingRateComputationMethodSystemNames.Remove(srcm.PluginDescriptor.SystemName); _settingService.SaveSetting(_shippingSettings); } } else { if (model.IsActive) { //mark as active _shippingSettings.ActiveShippingRateComputationMethodSystemNames.Add(srcm.PluginDescriptor.SystemName); _settingService.SaveSetting(_shippingSettings); } } var pluginDescriptor = srcm.PluginDescriptor; //display order pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); return(new NullJsonResult()); }
public ActionResult EditPopup(string btnId, string formId, PluginModel model) { //if (!_permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) // return AccessDeniedView(); var pluginDescriptor = _pluginFinder.GetPluginDescriptorBySystemName(model.SystemName, LoadPluginsMode.All); if (pluginDescriptor == null) { //No plugin found with the specified id return(RedirectToAction("List")); } if (ModelState.IsValid) { //we allow editing of 'friendly name', 'display order', store mappings pluginDescriptor.FriendlyName = model.FriendlyName; pluginDescriptor.DisplayOrder = model.DisplayOrder; pluginDescriptor.LimitedToStores.Clear(); PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); } return(View()); }
public ActionResult MethodUpdate(PaymentMethodModel model, GridCommand command) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePaymentMethods)) { return(AccessDeniedView()); } var pm = _paymentService.LoadPaymentMethodBySystemName(model.SystemName); if (pm.IsPaymentMethodActive(_paymentSettings)) { if (!model.IsActive) { //mark as disabled _paymentSettings.ActivePaymentMethodSystemNames.Remove(pm.PluginDescriptor.SystemName); _settingService.SaveSetting(_paymentSettings); } } else { if (model.IsActive) { //mark as active _paymentSettings.ActivePaymentMethodSystemNames.Add(pm.PluginDescriptor.SystemName); _settingService.SaveSetting(_paymentSettings); } } var pluginDescriptor = pm.PluginDescriptor; //display order pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); return(Methods(command)); }
public ActionResult BulkEditSave(GridCommand command, [Bind(Prefix = "updated")] IEnumerable <PluginModel> updatedPlugins) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(AccessDeniedView()); } if (updatedPlugins != null) { foreach (var pluginModel in updatedPlugins) { //update var pluginDescriptor = _pluginFinder.GetPluginDescriptorBySystemName(pluginModel.SystemName, false); if (pluginDescriptor != null) { //we allow editing of 'friendly name' and 'display order' pluginDescriptor.FriendlyName = pluginModel.FriendlyName; pluginDescriptor.DisplayOrder = pluginModel.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); } } } return(BulkEditSelect(command)); }
public ActionResult WidgetUpdate(WidgetModel model, GridCommand command) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets)) { return(AccessDeniedView()); } var widget = _widgetService.LoadWidgetBySystemName(model.SystemName); if (widget.IsWidgetActive(_widgetSettings)) { if (!model.IsActive) { //mark as disabled _widgetSettings.ActiveWidgetSystemNames.Remove(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } else { if (model.IsActive) { //mark as active _widgetSettings.ActiveWidgetSystemNames.Add(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } var pluginDescriptor = widget.PluginDescriptor; //display order pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); return(List(command)); }
public async Task <IActionResult> MethodUpdate(PaymentMethodModel model) { var pm = _paymentService.LoadPaymentMethodBySystemName(model.SystemName); if (pm.IsPaymentMethodActive(_paymentSettings)) { if (!model.IsActive) { //mark as disabled _paymentSettings.ActivePaymentMethodSystemNames.Remove(pm.PluginDescriptor.SystemName); await _settingService.SaveSetting(_paymentSettings); } } else { if (model.IsActive) { //mark as active _paymentSettings.ActivePaymentMethodSystemNames.Add(pm.PluginDescriptor.SystemName); await _settingService.SaveSetting(_paymentSettings); } } var pluginDescriptor = pm.PluginDescriptor; pluginDescriptor.FriendlyName = model.FriendlyName; pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); return(new NullJsonResult()); }
public virtual ActionResult WidgetUpdate([Bind(Exclude = "ConfigurationRouteValues")] WidgetModel model) { //if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets)) // return AccessDeniedView(); var widget = _widgetService.LoadWidgetBySystemName(model.SystemName); if (widget.IsWidgetActive(_widgetSettings)) { if (!model.IsActive) { //mark as disabled _widgetSettings.ActiveWidgetSystemNames.Remove(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } else { if (model.IsActive) { //mark as active _widgetSettings.ActiveWidgetSystemNames.Add(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } var pluginDescriptor = widget.PluginDescriptor; //display order pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); return(new NullJsonResult()); }
public async Task <IActionResult> WidgetUpdate(WidgetModel model) { var widget = _widgetService.LoadWidgetBySystemName(model.SystemName); if (widget.IsWidgetActive(_widgetSettings)) { if (!model.IsActive) { //mark as disabled _widgetSettings.ActiveWidgetSystemNames.Remove(widget.PluginDescriptor.SystemName); await _settingService.SaveSetting(_widgetSettings); } } else { if (model.IsActive) { //mark as active _widgetSettings.ActiveWidgetSystemNames.Add(widget.PluginDescriptor.SystemName); await _settingService.SaveSetting(_widgetSettings); } } await _cacheManager.Clear(); var pluginDescriptor = widget.PluginDescriptor; //display order pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); return(new NullJsonResult()); }
public ActionResult BulkEditSave(GridCommand command, [Bind(Prefix = "updated")] IEnumerable <PluginModel> updatedPlugins) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(AccessDeniedView()); } //bool changed = false; if (updatedPlugins != null) { foreach (var pluginModel in updatedPlugins) { //update var pluginDescriptor = _pluginFinder.GetPluginDescriptorBySystemName(pluginModel.SystemName, false); if (pluginDescriptor != null) { //we allow editing of 'friendly name' and 'display order' pluginDescriptor.FriendlyName = pluginModel.FriendlyName; pluginDescriptor.DisplayOrder = pluginModel.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //changed = true; } } } //if (changed) //restart application //_webHelper.RestartAppDomain("~/afcockpit/Plugin/List"); return(BulkEditSelect(command)); }
public override ActionResult MethodUpdate([Bind(Exclude = "ConfigurationRouteValues")] PaymentMethodModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePaymentMethods)) { return(AccessDeniedView()); } var pm = _paymentService.LoadPaymentMethodBySystemName(model.SystemName); if (pm.IsPaymentMethodActive(_paymentSettings)) { if (!model.IsActive) { //mark as disabled _paymentSettings.ActivePaymentMethodSystemNames.Remove(pm.PluginDescriptor.SystemName); _settingService.SaveSetting(_paymentSettings); //accordingly update widgets of Square plugin if (model.SystemName.Equals(SquarePaymentDefaults.SystemName)) { if (_widgetSettings.ActiveWidgetSystemNames.Contains(SquarePaymentDefaults.SystemName)) { _widgetSettings.ActiveWidgetSystemNames.Remove(SquarePaymentDefaults.SystemName); } _settingService.SaveSetting(_widgetSettings); } } } else { if (model.IsActive) { //mark as active _paymentSettings.ActivePaymentMethodSystemNames.Add(pm.PluginDescriptor.SystemName); _settingService.SaveSetting(_paymentSettings); //accordingly update widgets of Square plugin if (model.SystemName.Equals(SquarePaymentDefaults.SystemName)) { if (!_widgetSettings.ActiveWidgetSystemNames.Contains(SquarePaymentDefaults.SystemName)) { _widgetSettings.ActiveWidgetSystemNames.Add(SquarePaymentDefaults.SystemName); } _settingService.SaveSetting(_widgetSettings); } } } var pluginDescriptor = pm.PluginDescriptor; pluginDescriptor.FriendlyName = model.FriendlyName; pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); return(new NullJsonResult()); }
public virtual ActionResult Update(PluginDescriptor value) { var plugin = _pluginFinder.GetPluginDescriptorBySystemName(value.SystemName, LoadPluginsMode.All); plugin.DisplayOrder = value.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(plugin); return(Json(value, JsonRequestBehavior.AllowGet)); }
public ActionResult MethodUpdate([Bind(Exclude = "ConfigurationRouteValues")] AuthenticationMethodModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageExternalAuthenticationMethods)) { return(AccessDeniedView()); } var eam = _openAuthenticationService.LoadExternalAuthenticationMethodBySystemName(model.SystemName); if (eam.IsMethodActive(_externalAuthenticationSettings)) { if (!model.IsActive) { //mark as disabled _externalAuthenticationSettings.ActiveAuthenticationMethodSystemNames.Remove( eam.PluginDescriptor.SystemName); _settingService.SaveSetting(_externalAuthenticationSettings); } } else { if (model.IsActive) { //mark as active _externalAuthenticationSettings.ActiveAuthenticationMethodSystemNames.Add( eam.PluginDescriptor.SystemName); _settingService.SaveSetting(_externalAuthenticationSettings); } } var pluginDescriptor = eam.PluginDescriptor; pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); return(new NullJsonResult()); }
public virtual IHttpActionResult Put([FromODataUri] string key, EdmPluginDescriptor entity) { if (!CheckPermission(StandardPermissions.FullAccess)) { return(Unauthorized()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { string systemName = key.Replace('-', '.'); var pluginDescriptor = pluginFinder.GetPluginDescriptorBySystemName(systemName, false); if (pluginDescriptor == null) { return(NotFound()); } pluginDescriptor.FriendlyName = entity.FriendlyName; pluginDescriptor.DisplayOrder = entity.DisplayOrder; pluginDescriptor.LimitedToTenants.Clear(); if (!entity.LimitedToTenants.IsNullOrEmpty()) { pluginDescriptor.LimitedToTenants = entity.LimitedToTenants.ToList(); } PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); } catch (Exception x) { logger.Value.Error(x.Message, x); } return(Updated(entity)); }
public ActionResult EditPopup(string btnId, string formId, PluginModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(AccessDeniedView()); } var pluginDescriptor = _pluginFinder.GetPluginDescriptorBySystemName(model.SystemName, false); if (pluginDescriptor == null) { //No plugin found with the specified id return(RedirectToAction("List")); } if (ModelState.IsValid) { //we allow editing of 'friendly name' and 'display order' pluginDescriptor.FriendlyName = model.FriendlyName; pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); //locales) foreach (var localized in model.Locales) { pluginDescriptor.Instance().SaveLocalizedFriendlyName(_localizationService, localized.LanguageId, localized.FriendlyName); } ViewBag.RefreshPage = true; ViewBag.btnId = btnId; ViewBag.formId = formId; return(View(model)); } //If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult ProviderUpdate(ShippingRateComputationMethodModel model, GridCommand command) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageShippingSettings)) { return(AccessDeniedView()); } var srcm = _shippingService.LoadShippingRateComputationMethodBySystemName(model.SystemName); if (srcm.IsShippingRateComputationMethodActive(_shippingSettings)) { if (!model.IsActive) { //mark as disabled _shippingSettings.ActiveShippingRateComputationMethodSystemNames.Remove(srcm.PluginDescriptor.SystemName); _settingService.SaveSetting(_shippingSettings); } } else { if (model.IsActive) { //mark as active _shippingSettings.ActiveShippingRateComputationMethodSystemNames.Add(srcm.PluginDescriptor.SystemName); _settingService.SaveSetting(_shippingSettings); } } var pluginDescriptor = srcm.PluginDescriptor; //display order pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); return(Providers(command)); }
public ActionResult EditPopup(string btnId, string formId, PluginModel model) { var pluginDescriptor = _pluginFinder.GetPluginDescriptorBySystemName(model.SystemName, LoadPluginsMode.All); if (pluginDescriptor == null) { return(RedirectToAction("List")); } if (ModelState.IsValid) { pluginDescriptor.FriendlyName = model.FriendlyName; pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); _pluginFinder.ReloadPlugins(); ViewBag.RefreshPage = true; ViewBag.btnId = btnId; ViewBag.formId = formId; return(View(model)); } return(View(model)); }
public virtual ActionResult MethodUpdate([Bind(Exclude = "ConfigurationRouteValues")] PaymentMethodModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePaymentMethods)) { return(AccessDeniedView()); } var pm = _paymentService.LoadPaymentMethodBySystemName(model.SystemName); if (pm.IsPaymentMethodActive(_paymentSettings)) { if (!model.IsActive) { //mark as disabled _paymentSettings.ActivePaymentMethodSystemNames.Remove(pm.PluginDescriptor.SystemName); _settingService.SaveSetting(_paymentSettings); } } else { if (model.IsActive) { //mark as active _paymentSettings.ActivePaymentMethodSystemNames.Add(pm.PluginDescriptor.SystemName); _settingService.SaveSetting(_paymentSettings); } } var pluginDescriptor = pm.PluginDescriptor; pluginDescriptor.FriendlyName = model.FriendlyName; pluginDescriptor.DisplaySubscription = model.DisplaySubscription; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); return(new NullJsonResult()); }
public ActionResult PickupPointProviderUpdate([Bind(Exclude = "ConfigurationRouteValues")] PickupPointProviderModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageShippingSettings)) { return(AccessDeniedView()); } var pickupPointProvider = _shippingService.LoadPickupPointProviderBySystemName(model.SystemName); if (pickupPointProvider.IsPickupPointProviderActive(_shippingSettings)) { if (!model.IsActive) { //mark as disabled _shippingSettings.ActivePickupPointProviderSystemNames.Remove(pickupPointProvider.PluginDescriptor.SystemName); _settingService.SaveSetting(_shippingSettings); } } else { if (model.IsActive) { //mark as active _shippingSettings.ActivePickupPointProviderSystemNames.Add(pickupPointProvider.PluginDescriptor.SystemName); _settingService.SaveSetting(_shippingSettings); } } var pluginDescriptor = pickupPointProvider.PluginDescriptor; pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); return(new NullJsonResult()); }
public ActionResult EditPopup(string btnId, string formId, PluginModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(AccessDeniedView()); } var pluginDescriptor = _pluginFinder.GetPluginDescriptorBySystemName(model.SystemName, LoadPluginsMode.All); if (pluginDescriptor == null) { //No plugin found with the specified id return(RedirectToAction("List")); } if (ModelState.IsValid) { //we allow editing of 'friendly name', 'display order', store mappings pluginDescriptor.FriendlyName = model.FriendlyName; pluginDescriptor.DisplayOrder = model.DisplayOrder; pluginDescriptor.LimitedToStores.Clear(); if (model.LimitedToStores && model.SelectedStoreIds != null) { pluginDescriptor.LimitedToStores = model.SelectedStoreIds.ToList(); } PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); //locales foreach (var localized in model.Locales) { pluginDescriptor.Instance().SaveLocalizedFriendlyName(_localizationService, localized.LanguageId, localized.FriendlyName); } //enabled/disabled if (pluginDescriptor.Installed) { var pluginInstance = pluginDescriptor.Instance(); if (pluginInstance is IPaymentMethod) { //payment plugin var pm = (IPaymentMethod)pluginInstance; if (pm.IsPaymentMethodActive(_paymentSettings)) { if (!model.IsEnabled) { //mark as disabled _paymentSettings.ActivePaymentMethodSystemNames.Remove(pm.PluginDescriptor.SystemName); _settingService.SaveSetting(_paymentSettings); } } else { if (model.IsEnabled) { //mark as active _paymentSettings.ActivePaymentMethodSystemNames.Add(pm.PluginDescriptor.SystemName); _settingService.SaveSetting(_paymentSettings); } } } else if (pluginInstance is IShippingRateComputationMethod) { //shipping rate computation method var srcm = (IShippingRateComputationMethod)pluginInstance; if (srcm.IsShippingRateComputationMethodActive(_shippingSettings)) { if (!model.IsEnabled) { //mark as disabled _shippingSettings.ActiveShippingRateComputationMethodSystemNames.Remove(srcm.PluginDescriptor.SystemName); _settingService.SaveSetting(_shippingSettings); } } else { if (model.IsEnabled) { //mark as active _shippingSettings.ActiveShippingRateComputationMethodSystemNames.Add(srcm.PluginDescriptor.SystemName); _settingService.SaveSetting(_shippingSettings); } } } else if (pluginInstance is ITaxProvider) { //tax provider if (model.IsEnabled) { _taxSettings.ActiveTaxProviderSystemName = model.SystemName; _settingService.SaveSetting(_taxSettings); } else { _taxSettings.ActiveTaxProviderSystemName = ""; _settingService.SaveSetting(_taxSettings); } } else if (pluginInstance is IExternalAuthenticationMethod) { //external auth method var eam = (IExternalAuthenticationMethod)pluginInstance; if (eam.IsMethodActive(_externalAuthenticationSettings)) { if (!model.IsEnabled) { //mark as disabled _externalAuthenticationSettings.ActiveAuthenticationMethodSystemNames.Remove(eam.PluginDescriptor.SystemName); _settingService.SaveSetting(_externalAuthenticationSettings); } } else { if (model.IsEnabled) { //mark as active _externalAuthenticationSettings.ActiveAuthenticationMethodSystemNames.Add(eam.PluginDescriptor.SystemName); _settingService.SaveSetting(_externalAuthenticationSettings); } } } else if (pluginInstance is IWidgetPlugin) { //Misc plugins var widget = (IWidgetPlugin)pluginInstance; if (widget.IsWidgetActive(_widgetSettings)) { if (!model.IsEnabled) { //mark as disabled _widgetSettings.ActiveWidgetSystemNames.Remove(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } else { if (model.IsEnabled) { //mark as active _widgetSettings.ActiveWidgetSystemNames.Add(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } } } ViewBag.RefreshPage = true; ViewBag.btnId = btnId; ViewBag.formId = formId; return(View(model)); } //If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult EditPopup(string btnId, string formId, PluginModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(AccessDeniedView()); } var pluginDescriptor = _pluginFinder.GetPluginDescriptorBySystemName(model.SystemName, false); if (pluginDescriptor == null) { return(RedirectToAction("List")); } if (ModelState.IsValid) { pluginDescriptor.FriendlyName = model.FriendlyName; pluginDescriptor.Description = model.Description; pluginDescriptor.DisplayOrder = model.DisplayOrder; PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); string settingKey = pluginDescriptor.GetSettingKey("LimitedToStores"); if (model.LimitedToStores && model.SelectedStoreIds != null && model.SelectedStoreIds.Count() > 0) { _settingService.SetSetting <string>(settingKey, string.Join(",", model.SelectedStoreIds)); } else { _settingService.DeleteSetting(settingKey); } // reset plugin and string resources cache _pluginFinder.ReloadPlugins(); _localizationService.ClearCache(); var pluginInstance = pluginDescriptor.Instance(); foreach (var localized in model.Locales) { pluginInstance.SaveLocalizedValue(_localizationService, localized.LanguageId, "FriendlyName", localized.FriendlyName); pluginInstance.SaveLocalizedValue(_localizationService, localized.LanguageId, "Description", localized.Description); } //enabled/disabled if (pluginDescriptor.Installed) { if (pluginInstance is IPaymentMethod) { //payment plugin var pm = (IPaymentMethod)pluginInstance; if (pm.IsPaymentMethodActive(_paymentSettings)) { if (!model.IsEnabled) { //mark as disabled _paymentSettings.ActivePaymentMethodSystemNames.Remove(pm.PluginDescriptor.SystemName); _settingService.SaveSetting(_paymentSettings); } } else { if (model.IsEnabled) { //mark as active _paymentSettings.ActivePaymentMethodSystemNames.Add(pm.PluginDescriptor.SystemName); _settingService.SaveSetting(_paymentSettings); } } } else if (pluginInstance is IShippingRateComputationMethod) { //shipping rate computation method var srcm = (IShippingRateComputationMethod)pluginInstance; if (srcm.IsShippingRateComputationMethodActive(_shippingSettings)) { if (!model.IsEnabled) { //mark as disabled _shippingSettings.ActiveShippingRateComputationMethodSystemNames.Remove(srcm.PluginDescriptor.SystemName); _settingService.SaveSetting(_shippingSettings); } } else { if (model.IsEnabled) { //mark as active _shippingSettings.ActiveShippingRateComputationMethodSystemNames.Add(srcm.PluginDescriptor.SystemName); _settingService.SaveSetting(_shippingSettings); } } } else if (pluginInstance is ITaxProvider) { //tax provider if (model.IsEnabled) { _taxSettings.ActiveTaxProviderSystemName = model.SystemName; _settingService.SaveSetting(_taxSettings); } else { _taxSettings.ActiveTaxProviderSystemName = ""; _settingService.SaveSetting(_taxSettings); } } else if (pluginInstance is IExternalAuthenticationMethod) { //external auth method var eam = (IExternalAuthenticationMethod)pluginInstance; if (eam.IsMethodActive(_externalAuthenticationSettings)) { if (!model.IsEnabled) { //mark as disabled _externalAuthenticationSettings.ActiveAuthenticationMethodSystemNames.Remove(eam.PluginDescriptor.SystemName); _settingService.SaveSetting(_externalAuthenticationSettings); } } else { if (model.IsEnabled) { //mark as active _externalAuthenticationSettings.ActiveAuthenticationMethodSystemNames.Add(eam.PluginDescriptor.SystemName); _settingService.SaveSetting(_externalAuthenticationSettings); } } } else if (pluginInstance is IWidgetPlugin) { //Misc plugins var widget = (IWidgetPlugin)pluginInstance; if (widget.IsWidgetActive(_widgetSettings)) { if (!model.IsEnabled) { //mark as disabled _widgetSettings.ActiveWidgetSystemNames.Remove(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } else { if (model.IsEnabled) { //mark as active _widgetSettings.ActiveWidgetSystemNames.Add(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } } } ViewBag.RefreshPage = true; ViewBag.btnId = btnId; ViewBag.formId = formId; return(View(model)); } //If we got this far, something failed, redisplay form return(View(model)); }
public virtual ActionResult EditPopup(string btnId, string formId, PluginModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManagePlugins)) { return(AccessDeniedView()); } var pluginDescriptor = _pluginFinder.GetPluginDescriptorBySystemName(model.SystemName, LoadPluginsMode.All); if (pluginDescriptor == null) { //No plugin found with the specified id return(RedirectToAction("List")); } if (ModelState.IsValid) { //we allow editing of 'friendly name', 'display order', store mappings pluginDescriptor.FriendlyName = model.FriendlyName; pluginDescriptor.DisplayOrder = model.DisplayOrder; pluginDescriptor.LimitedToStores.Clear(); if (model.SelectedStoreIds.Any()) { pluginDescriptor.LimitedToStores = model.SelectedStoreIds; } pluginDescriptor.LimitedToCustomerRoles.Clear(); if (model.SelectedCustomerRoleIds.Any()) { pluginDescriptor.LimitedToCustomerRoles = model.SelectedCustomerRoleIds; } PluginFileParser.SavePluginDescriptionFile(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(); //locales foreach (var localized in model.Locales) { pluginDescriptor.Instance().SaveLocalizedFriendlyName(_localizationService, localized.LanguageId, localized.FriendlyName); } //enabled/disabled if (pluginDescriptor.Installed) { var pluginInstance = pluginDescriptor.Instance(); if (pluginInstance is IExternalAuthenticationMethod) { //external auth method var eam = (IExternalAuthenticationMethod)pluginInstance; if (eam.IsMethodActive(_externalAuthenticationSettings)) { if (!model.IsEnabled) { //mark as disabled _externalAuthenticationSettings.ActiveAuthenticationMethodSystemNames.Remove(eam.PluginDescriptor.SystemName); _settingService.SaveSetting(_externalAuthenticationSettings); } } else { if (model.IsEnabled) { //mark as active _externalAuthenticationSettings.ActiveAuthenticationMethodSystemNames.Add(eam.PluginDescriptor.SystemName); _settingService.SaveSetting(_externalAuthenticationSettings); } } } else if (pluginInstance is IWidgetPlugin) { //Misc plugins var widget = (IWidgetPlugin)pluginInstance; if (widget.IsWidgetActive(_widgetSettings)) { if (!model.IsEnabled) { //mark as disabled _widgetSettings.ActiveWidgetSystemNames.Remove(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } else { if (model.IsEnabled) { //mark as active _widgetSettings.ActiveWidgetSystemNames.Add(widget.PluginDescriptor.SystemName); _settingService.SaveSetting(_widgetSettings); } } } //activity log _customerActivityService.InsertActivity("EditPlugin", _localizationService.GetResource("ActivityLog.EditPlugin"), pluginDescriptor.FriendlyName); } ViewBag.RefreshPage = true; ViewBag.btnId = btnId; ViewBag.formId = formId; return(View(model)); } //If we got this far, something failed, redisplay form return(View(model)); }
/// <summary> /// 上传plugin zip文件 /// </summary> /// <returns></returns> public ActionResult PostFile(string systemName) { string strErrorMsg = ""; string strName = ""; try { string strPath = ""; if (Request.Files.Count > 0) { if (!System.IO.Directory.Exists(string.Format("{0}\\temp", Request.PhysicalApplicationPath))) { System.IO.Directory.CreateDirectory(string.Format("{0}\\temp", Request.PhysicalApplicationPath)); } if (!System.IO.Directory.Exists(string.Format("{0}\\BackUp", Request.PhysicalApplicationPath))) { System.IO.Directory.CreateDirectory(string.Format("{0}\\BackUp", Request.PhysicalApplicationPath)); } HttpPostedFileBase objFile = Request.Files[0]; var pad = DateTime.Now.ToString("yyyyMMddHHmmss"); strPath = string.Format("{0}\\temp\\{1}{2}", Request.PhysicalApplicationPath, pad, System.IO.Path.GetExtension(objFile.FileName)); // dic.Add(objFile.FileName, objFile.InputStream); objFile.SaveAs(strPath); //System.IO.MemoryStream stream = new System.IO.MemoryStream(objZip.ZipContent); SharpZip.UnpackFiles(strPath, string.Format("{0}temp\\{1}\\", Request.PhysicalApplicationPath, pad)); var strPathTemp = strPath.Replace(System.IO.Path.GetExtension(objFile.FileName), "\\"); var bolCheck = CheckModule(objFile.FileName, strPathTemp); PluginDescriptor plugTemp = null; if (bolCheck) { plugTemp = PluginFileParser.ParsePluginDescriptionFile(strPathTemp + "\\Description.txt"); if (!string.IsNullOrEmpty(systemName) && systemName != "0" && plugTemp.SystemName != systemName) { throw new Exception("System Name不对,插件不兼容!"); } if (!string.IsNullOrEmpty(systemName) && systemName != "0") //编辑时先删除以前的 { var plugTemp1 = ((List <PluginDescriptor>)PluginManager.AllPlugins) .Find(a => a.SystemName == plugTemp.SystemName); // 如果前后名字对不上,不能装啊 if (plugTemp1 == null) { // 对不上了,看systemName,如果空的话就是添加,否则不让操作 if (!string.IsNullOrEmpty(systemName)) { throw new Exception("System Name不对,插件不兼容!"); } } } else { //是否存在相同的 // plugTemp = PluginManager.GetPluginDescriptor(new DirectoryInfo(System.IO.Path.GetDirectoryName(strPath))); if (((List <PluginDescriptor>)PluginManager.AllPlugins) .Exists(a => a.PluginFileName == plugTemp.PluginFileName)) { strErrorMsg = "the Module has existed!"; bolCheck = false; } else { } } var pluginsVersions = plugTemp.Version.Split('.'); if (pluginsVersions.Length < 4) { strErrorMsg = "the Module's Version format is error! Correct Format is '40.1.20160911.01'"; bolCheck = false; } } else { System.IO.Directory.Delete(strPathTemp, true); strErrorMsg = "Zip File is not a Module!"; } if (bolCheck) { string strPathTo = string.Format("{0}Plugins\\{1}", Request.PhysicalApplicationPath, plugTemp.SystemName); var plug = plugTemp; if (!Directory.Exists(strPathTo)) { Directory.CreateDirectory(strPathTo); System.IO.File.Copy(strPathTemp + "\\Description.txt", strPathTo + "\\Description.txt"); } plug.InstallFrom = pad; plug.NeedInstalled = false; plug.Installed = false; plug.PluginPath = strPathTo; PluginFileParser.SavePluginDescriptionFile(plug); PluginManager.SavePlugins(plug); } } strName = System.IO.Path.GetFileName(strPath); } catch (Exception ex) { strErrorMsg = "Server Error:" + ex.Message; } if (strErrorMsg != "") { return(Json(new UploadMessageError("1", strErrorMsg, Request["id"]), JsonRequestBehavior.AllowGet)); } else { return(Json(new UploadMessageSuccess(new UploadMessageSuccessMsg(strName, "/temp/" + strName), Request["id"]), JsonRequestBehavior.AllowGet)); } }