public async Task <IActionResult> Index(PagerParameters pagerParameters)
        {
            if (!await _authorizationService.AuthorizeAsync(User, EmailTemplatesPermissions.ManageEmailTemplates))
            {
                return(Unauthorized());
            }

            var siteSettings = await _siteService.GetSiteSettingsAsync();

            var pager             = new Pager(pagerParameters, siteSettings.PageSize);
            var templatesDocument = await _emailTemplatesManager.GetTemplatesDocumentAsync();


            var count = templatesDocument.Templates.Count;

            var templates = templatesDocument.Templates.OrderBy(x => x.Key)
                            .Skip(pager.GetStartIndex())
                            .Take(pager.PageSize);

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

            var model = new EmailTemplateIndexViewModel
            {
                Templates = templates.Select(x => new TemplateEntry {
                    Name = x.Key, Template = x.Value
                }).ToList(),
                Pager = pagerShape
            };

            return(View("Index", model));
        }
        public async Task ProcessDeploymentStepAsync(DeploymentStep step, DeploymentPlanResult result)
        {
            var allTemplatesState = step as AllEmailTemplatesDeploymentStep;

            if (allTemplatesState == null)
            {
                return;
            }

            var templateObjects = new JObject();
            var templates       = await _templatesManager.GetTemplatesDocumentAsync();

            foreach (var template in templates.Templates)
            {
                templateObjects[template.Key] = JObject.FromObject(template.Value);
            }

            result.Steps.Add(new JObject(
                                 new JProperty("name", "EmailTemplates"),
                                 new JProperty("EmailTemplates", templateObjects)
                                 ));
        }