public ActionResult FeaturesPOST(FeaturesBulkAction bulkAction, IList <string> featureIds, bool?force) { if (!Services.Authorizer.Authorize(Permissions.ManageFeatures, T("Not allowed to manage features"))) { return(new HttpUnauthorizedResult()); } if (featureIds == null || !featureIds.Any()) { ModelState.AddModelError("featureIds", T("Please select one or more features.")); } if (ModelState.IsValid) { var availableFeatures = _moduleService.GetAvailableFeatures().Where(feature => ModuleIsAllowed(feature.Descriptor.Extension)).ToList(); var selectedFeatures = availableFeatures.Where(x => featureIds.Contains(x.Descriptor.Id)).ToList(); var enabledFeatures = availableFeatures.Where(x => x.IsEnabled && featureIds.Contains(x.Descriptor.Id)).Select(x => x.Descriptor.Id).ToList(); var disabledFeatures = availableFeatures.Where(x => !x.IsEnabled && featureIds.Contains(x.Descriptor.Id)).Select(x => x.Descriptor.Id).ToList(); switch (bulkAction) { case FeaturesBulkAction.None: break; case FeaturesBulkAction.Enable: _moduleService.EnableFeatures(disabledFeatures, force == true); break; case FeaturesBulkAction.Disable: _moduleService.DisableFeatures(enabledFeatures, force == true); break; case FeaturesBulkAction.Toggle: _moduleService.EnableFeatures(disabledFeatures, force == true); _moduleService.DisableFeatures(enabledFeatures, force == true); break; case FeaturesBulkAction.Update: foreach (var feature in selectedFeatures.Where(x => x.NeedsUpdate)) { var id = feature.Descriptor.Id; try { _reportsCoordinator.Register("Data Migration", "Upgrade " + id, "Orchard installation"); _dataMigrationManager.Update(id); Services.Notifier.Information(T("The feature {0} was updated successfully", id)); } catch (Exception exception) { Services.Notifier.Error(T("An error occured while updating the feature {0}: {1}", id, exception.Message)); } } break; default: throw new ArgumentOutOfRangeException(); } } return(RedirectToAction("Features")); }
public void EnableFeature(string featureId) { var features = _moduleService.GetAvailableFeatures().ToDictionary(m => m.Descriptor.Id, m => m); if (features.ContainsKey(featureId) && !features[featureId].IsEnabled) { _moduleService.EnableFeatures(new string[] { featureId }, true); } }
private void EnableFeatures(List <string> disabledFeatures, bool force) { foreach (var feature in disabledFeatures) { if (_featureManager.HasLoader(feature)) { _moduleService.EnableFeatures(disabledFeatures, force); } else { Services.Notifier.Error(T("No loader found for feature's (\"{0}\") exension!", feature)); } } }
public void Enable(params string[] featureNames) { Context.Output.WriteLine(T("Enabling features {0}", string.Join(",", featureNames))); bool listAvailableFeatures = false; List <string> featuresToEnable = new List <string>(); string[] availableFeatures = _featureManager.GetAvailableFeatures().Select(x => x.Id).ToArray(); foreach (var featureName in featureNames) { if (availableFeatures.Contains(featureName)) { featuresToEnable.Add(featureName); } else { Context.Output.WriteLine(T("Could not find feature {0}", featureName)); listAvailableFeatures = true; } } if (featuresToEnable.Count != 0) { _moduleService.EnableFeatures(featuresToEnable, true); foreach (var entry in _notifier.List()) { Context.Output.WriteLine(entry.Message); } } else { Context.Output.WriteLine(T("Could not enable features: {0}", string.Join(",", featureNames))); listAvailableFeatures = true; } if (listAvailableFeatures) { Context.Output.WriteLine(T("Available features are : {0}", string.Join(",", availableFeatures))); } }
public ActionResult Enable(string id, bool?force) { if (!Services.Authorizer.Authorize(Permissions.ManageFeatures, T("Not allowed to manage features"))) { return(new HttpUnauthorizedResult()); } if (string.IsNullOrEmpty(id)) { return(HttpNotFound()); } _moduleService.EnableFeatures(new[] { id }, force != null && (bool)force); return(RedirectToAction("Features")); }
public ActionResult InstallPackageDetailsPOST(PackagingInstallViewModel packagingInstallViewModel, string redirectUrl) { if (_shellSettings.Name != ShellSettings.DefaultName || !Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not authorized to add sources"))) { return(new HttpUnauthorizedResult()); } try { IEnumerable <Recipe> recipes = _recipeHarvester.HarvestRecipes(packagingInstallViewModel.ExtensionDescriptor.Id) .Where(loadedRecipe => packagingInstallViewModel.Recipes.FirstOrDefault(recipeViewModel => recipeViewModel.Execute && recipeViewModel.Recipe.Name.Equals(loadedRecipe.Name)) != null); foreach (Recipe recipe in recipes) { try { _recipeManager.Execute(recipe); } catch { Services.Notifier.Error(T("Recipes contains {0} unsuported module installation steps.", recipe.Name)); } } // Enable selected features if (packagingInstallViewModel.Features.Count > 0) { IEnumerable <string> featureIds = packagingInstallViewModel.Features .Where(feature => feature.Enable) .Select(feature => feature.FeatureDescriptor.Id); // Enable the features and its dependencies _moduleService.EnableFeatures(featureIds, true); } } catch (Exception exception) { Services.Notifier.Error(T("Post installation steps failed with error: {0}", exception.Message)); } return(Redirect(redirectUrl)); }