public virtual IActionResult PickupPointProviderUpdate(PickupPointProviderModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageShippingSettings)) { return(AccessDeniedView()); } var pickupPointProvider = _shippingService.LoadPickupPointProviderBySystemName(model.SystemName); if (_shippingService.IsPickupPointProviderActive(pickupPointProvider)) { 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; //update the description file PluginManager.SavePluginDescriptor(pluginDescriptor); //reset plugin cache _pluginFinder.ReloadPlugins(pluginDescriptor); return(new NullJsonResult()); }
public virtual async Task <IActionResult> PickupPointProviderUpdate(PickupPointProviderModel model) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageShippingSettings)) { return(AccessDeniedView()); } var pickupPointProvider = await _pickupPluginManager.LoadPluginBySystemNameAsync(model.SystemName); if (_pickupPluginManager.IsPluginActive(pickupPointProvider)) { if (!model.IsActive) { //mark as disabled _shippingSettings.ActivePickupPointProviderSystemNames.Remove(pickupPointProvider.PluginDescriptor.SystemName); await _settingService.SaveSettingAsync(_shippingSettings); } } else { if (model.IsActive) { //mark as active _shippingSettings.ActivePickupPointProviderSystemNames.Add(pickupPointProvider.PluginDescriptor.SystemName); await _settingService.SaveSettingAsync(_shippingSettings); } } var pluginDescriptor = pickupPointProvider.PluginDescriptor; pluginDescriptor.DisplayOrder = model.DisplayOrder; //update the description file pluginDescriptor.Save(); //raise event await _eventPublisher.PublishAsync(new PluginUpdatedEvent(pluginDescriptor)); return(new NullJsonResult()); }