public ActionResult Index(ModulesIndexOptions options, PagerParameters pagerParameters) { if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not allowed to manage modules"))) return new HttpUnauthorizedResult(); Pager pager = new Pager(Services.WorkContext.CurrentSite, pagerParameters); IEnumerable<ModuleEntry> modules = _extensionManager.AvailableExtensions() .Where(extensionDescriptor => DefaultExtensionTypes.IsModule(extensionDescriptor.ExtensionType) && (string.IsNullOrEmpty(options.SearchText) || extensionDescriptor.Name.ToLowerInvariant().Contains(options.SearchText.ToLowerInvariant()))) .OrderBy(extensionDescriptor => extensionDescriptor.Name) .Select(extensionDescriptor => new ModuleEntry { Descriptor = extensionDescriptor }); int totalItemCount = modules.Count(); if (pager.PageSize != 0) { modules = modules.Skip((pager.Page - 1) * pager.PageSize).Take(pager.PageSize); } // This way we can more or less reliably handle this implicit dependency. var installModules = _featureManager.GetEnabledFeatures().FirstOrDefault(f => f.Id == "PackagingServices") != null; modules = modules.ToList(); foreach (ModuleEntry moduleEntry in modules) { moduleEntry.IsRecentlyInstalled = _moduleService.IsRecentlyInstalled(moduleEntry.Descriptor); moduleEntry.CanUninstall = installModules; if (_extensionDisplayEventHandler != null) { foreach (string notification in _extensionDisplayEventHandler.Displaying(moduleEntry.Descriptor, ControllerContext.RequestContext)) { moduleEntry.Notifications.Add(notification); } } } return View(new ModulesIndexViewModel { Modules = modules, InstallModules = installModules, Options = options, Pager = Shape.Pager(pager).TotalItemCount(totalItemCount) }); }
public ActionResult Index(ModulesIndexOptions options, PagerParameters pagerParameters) { if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not allowed to manage modules"))) return new HttpUnauthorizedResult(); Pager pager = new Pager(Services.WorkContext.CurrentSite, pagerParameters); IEnumerable<ModuleEntry> modules = _extensionManager.AvailableExtensions() .Where(extensionDescriptor => DefaultExtensionTypes.IsModule(extensionDescriptor.ExtensionType) && (string.IsNullOrEmpty(options.SearchText) || extensionDescriptor.Name.ToLowerInvariant().Contains(options.SearchText.ToLowerInvariant()))) .OrderBy(extensionDescriptor => extensionDescriptor.Name) .Select(extensionDescriptor => new ModuleEntry { Descriptor = extensionDescriptor }); int totalItemCount = modules.Count(); if (pager.PageSize != 0) { modules = modules.Skip((pager.Page - 1) * pager.PageSize).Take(pager.PageSize); } modules = modules.ToList(); foreach (ModuleEntry moduleEntry in modules) { moduleEntry.IsRecentlyInstalled = _moduleService.IsRecentlyInstalled(moduleEntry.Descriptor); } return View(new ModulesIndexViewModel { Modules = modules, InstallModules = _featureManager.GetEnabledFeatures().FirstOrDefault(f => f.Id == "PackagingServices") != null, Options = options, Pager = Shape.Pager(pager).TotalItemCount(totalItemCount) }); }