예제 #1
0
        public async Task <IActionResult> Index(PagerParameters pagerParameters)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageShortcodeTemplates))
            {
                return(Forbid());
            }

            var siteSettings = await _siteService.GetSiteSettingsAsync();

            var pager = new Pager(pagerParameters, siteSettings.PageSize);
            var shortcodeTemplatesDocument = await _shortcodeTemplatesManager.GetShortcodeTemplatesDocumentAsync();

            var count = shortcodeTemplatesDocument.ShortcodeTemplates.Count;

            var shortcodeTemplates = shortcodeTemplatesDocument.ShortcodeTemplates.OrderBy(x => x.Key)
                                     .Skip(pager.GetStartIndex())
                                     .Take(pager.PageSize);

            var pagerShape = (await New.Pager(pager)).TotalItemCount(count);

            var model = new ShortcodeTemplateIndexViewModel
            {
                ShortcodeTemplates = shortcodeTemplates.Select(x => new ShortcodeTemplateEntry {
                    Name = x.Key, ShortcodeTemplate = x.Value
                }).ToList(),
                Pager = pagerShape
            };

            return(View("Index", model));
        }
예제 #2
0
        public async Task <IActionResult> Index(ContentOptions options, PagerParameters pagerParameters)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageShortcodeTemplates))
            {
                return(Forbid());
            }

            var siteSettings = await _siteService.GetSiteSettingsAsync();

            var pager = new Pager(pagerParameters, siteSettings.PageSize);
            var shortcodeTemplatesDocument = await _shortcodeTemplatesManager.GetShortcodeTemplatesDocumentAsync();

            var shortcodeTemplates = shortcodeTemplatesDocument.ShortcodeTemplates.ToList();

            if (!String.IsNullOrWhiteSpace(options.Search))
            {
                shortcodeTemplates = shortcodeTemplates.Where(x => x.Key.Contains(options.Search, StringComparison.OrdinalIgnoreCase)).ToList();
            }

            var count = shortcodeTemplates.Count;

            shortcodeTemplates = shortcodeTemplates.OrderBy(x => x.Key)
                                 .Skip(pager.GetStartIndex())
                                 .Take(pager.PageSize).ToList();

            var pagerShape = (await New.Pager(pager)).TotalItemCount(count);

            var model = new ShortcodeTemplateIndexViewModel
            {
                ShortcodeTemplates = shortcodeTemplates.Select(x => new ShortcodeTemplateEntry {
                    Name = x.Key, ShortcodeTemplate = x.Value
                }).ToList(),
                Options = options,
                Pager   = pagerShape
            };

            model.Options.ContentsBulkAction = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = S["Delete"], Value = nameof(ContentsBulkAction.Remove)
                }
            };

            return(View("Index", model));
        }
예제 #3
0
 public ActionResult IndexFilterPOST(ShortcodeTemplateIndexViewModel model)
 {
     return(RedirectToAction(nameof(Index), new RouteValueDictionary {
         { "Options.Search", model.Options.Search }
     }));
 }