public async Task <IActionResult> Edit(string name) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageShortcodeTemplates)) { return(Forbid()); } var shortcodeTemplatesDocument = await _shortcodeTemplatesManager.GetShortcodeTemplatesDocumentAsync(); if (!shortcodeTemplatesDocument.ShortcodeTemplates.ContainsKey(name)) { return(RedirectToAction(nameof(Create), new { name })); } var template = shortcodeTemplatesDocument.ShortcodeTemplates[name]; var model = new ShortcodeTemplateViewModel { Name = name, Content = template.Content, Hint = template.Hint, Usage = template.Usage, DefaultValue = template.DefaultValue, Categories = template.Categories }; return(View(model)); }
public async Task <IActionResult> CreatePost(ShortcodeTemplateViewModel model, string submit) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageShortcodeTemplates)) { return(Forbid()); } if (ModelState.IsValid) { if (String.IsNullOrWhiteSpace(model.Name)) { ModelState.AddModelError(nameof(ShortcodeTemplateViewModel.Name), S["The name is mandatory."]); } else if (String.IsNullOrEmpty(model.Content)) { ModelState.AddModelError(nameof(ShortcodeTemplateViewModel.Content), S["The template content is mandatory."]); } else if (!_liquidTemplateManager.Validate(model.Content, out var errors)) { ModelState.AddModelError(nameof(ShortcodeTemplateViewModel.Content), S["The template doesn't contain a valid Liquid expression. Details: {0}", string.Join(" ", errors)]); } else { var shortcodeTemplatesDocument = await _shortcodeTemplatesManager.GetShortcodeTemplatesDocumentAsync(); if (shortcodeTemplatesDocument.ShortcodeTemplates.ContainsKey(model.Name)) { ModelState.AddModelError(nameof(ShortcodeTemplateViewModel.Name), S["A template with the same name already exists."]); } } } if (ModelState.IsValid) { var template = new ShortcodeTemplate { Content = model.Content, Hint = model.Hint, Usage = model.Usage, DefaultValue = model.DefaultValue, Categories = JsonConvert.DeserializeObject <string[]>(model.SelectedCategories) }; await _shortcodeTemplatesManager.UpdateShortcodeTemplateAsync(model.Name, template); if (submit == "SaveAndContinue") { return(RedirectToAction(nameof(Edit), new { name = model.Name })); } else { return(RedirectToAction(nameof(Index))); } } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <IActionResult> Create(ShortcodeTemplateViewModel model) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageShortcodeTemplates)) { return(Forbid()); } return(View(new ShortcodeTemplateViewModel())); }