public async Task <IActionResult> Index(ContentOptions options, PagerParameters pagerParameters) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageDeploymentPlan)) { return(Forbid()); } if (!await _authorizationService.AuthorizeAsync(User, Permissions.Export)) { return(Forbid()); } var siteSettings = await _siteService.GetSiteSettingsAsync(); var pager = new Pager(pagerParameters, siteSettings.PageSize); var deploymentPlans = _session.Query <DeploymentPlan, DeploymentPlanIndex>(); if (!string.IsNullOrWhiteSpace(options.Search)) { deploymentPlans = deploymentPlans.Where(x => x.Name.Contains(options.Search)); } var count = await deploymentPlans.CountAsync(); var results = await deploymentPlans .OrderBy(p => p.Name) .Skip(pager.GetStartIndex()) .Take(pager.PageSize) .ListAsync(); // Maintain previous route data when generating page links var routeData = new RouteData(); routeData.Values.Add("Options.Search", options.Search); var pagerShape = (await New.Pager(pager)).TotalItemCount(count).RouteData(routeData); var model = new DeploymentPlanIndexViewModel { DeploymentPlans = results.Select(x => new DeploymentPlanEntry { DeploymentPlan = x }).ToList(), Options = options, Pager = pagerShape }; model.Options.DeploymentPlansBulkAction = new List <SelectListItem>() { new SelectListItem() { Text = S["Delete"], Value = nameof(ContentsBulkAction.Delete) } }; return(View(model)); }
public async Task <IActionResult> Index(DeploymentPlanIndexOptions options, PagerParameters pagerParameters) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageDeploymentPlan)) { return(Unauthorized()); } if (!await _authorizationService.AuthorizeAsync(User, Permissions.Export)) { return(Unauthorized()); } var siteSettings = await _siteService.GetSiteSettingsAsync(); var pager = new Pager(pagerParameters, siteSettings.PageSize); // default options if (options == null) { options = new DeploymentPlanIndexOptions(); } var deploymentPlans = _session.QueryAsync <DeploymentPlan, DeploymentPlanIndex>(); if (!string.IsNullOrWhiteSpace(options.Search)) { deploymentPlans = deploymentPlans.Where(dp => dp.Name.Contains(options.Search)); } var count = await deploymentPlans.Count(); var results = await deploymentPlans .Skip(pager.GetStartIndex()) .Take(pager.PageSize) .List(); // Maintain previous route data when generating page links var routeData = new RouteData(); routeData.Values.Add("Options.Search", options.Search); var pagerShape = New.Pager(pager).TotalItemCount(count).RouteData(routeData); var model = new DeploymentPlanIndexViewModel { DeploymentPlans = results.Select(x => new DeploymentPlanEntry { DeploymentPlan = x }).ToList(), Options = options, Pager = pagerShape }; return(View(model)); }
public ActionResult IndexFilterPOST(DeploymentPlanIndexViewModel model) { return(RedirectToAction(nameof(Index), new RouteValueDictionary { { "Options.Search", model.Options.Search } })); }