public ActionResult Index(GDPRAdminViewModel model, PagerParameters pagerParameters) { // depending on the user's permissions, we need to show different stuff // but if the user has none of the GDPR permissions, they may see nothing if (!_authorizer.Authorize(GDPRPermissions.ManageAnonymization) && !_authorizer.Authorize(GDPRPermissions.ManageErasure)) { return(new HttpUnauthorizedResult()); } Pager pager = new Pager(_siteService.GetSiteSettings(), pagerParameters ?? new PagerParameters()); var query = _contentManager .Query(VersionOptions.Latest, GetProfileTypes().Select(ctd => ctd.Name).ToArray()); if (!string.IsNullOrWhiteSpace(model?.SearchExpression)) { // TODO: figure out how to make this independent of the TitlePartRecord, maybe // by using ITitleAspect, or even the DisplayAlias somehow. Depending on a thing // from Orchard.Core (the Title stuff is there) is not so bad, but still... query = query.Where <TitlePartRecord>(w => w.Title.Contains(model.SearchExpression)); } var maxPagedCount = _siteService.GetSiteSettings().MaxPagedCount; if (maxPagedCount > 0 && pager.PageSize > maxPagedCount) { pager.PageSize = maxPagedCount; } var pagerShape = Shape.Pager(pager).TotalItemCount(maxPagedCount > 0 ? maxPagedCount : query.Count()); var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList(); var list = Shape.List(); list.AddRange(pageOfContentItems.Select(ci => _contentManager.BuildDisplay(ci, "ProfileItemAdminSummary"))); var viewModel = new GDPRAdminViewModel { ContentItems = list, Pager = pagerShape, SearchExpression = model?.SearchExpression ?? "" }; return(View(viewModel)); }
public ActionResult IndexSearchPOST(GDPRAdminViewModel viewModel) { return(Index(viewModel, null)); }