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));
 }