public async Task <IActionResult> Edit(CKEditorConfigurationViewModel model) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageCKEditorConfigurations)) { return(Forbid()); } if (ModelState.IsValid) { if (String.IsNullOrWhiteSpace(model.Name)) { ModelState.AddModelError(nameof(CKEditorConfigurationViewModel.Name), S["The name is mandatory."]); } if (String.IsNullOrWhiteSpace(model.Configuration) || !model.Configuration.IsJson()) { ModelState.AddModelError(nameof(CKEditorConfigurationViewModel.Configuration), S["Invalid JSON configuration."]); } } if (ModelState.IsValid) { var configuration = new CKEditorConfiguration { Name = model.Name, Configuration = FormatJson(model.Configuration) }; await _ckEditorConfigurationManager.UpdateAsync(model.Name, configuration); return(RedirectToAction(nameof(Index))); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <IActionResult> CreatePost(CKEditorConfigurationViewModel model) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageCKEditorConfigurations)) { return(Forbid()); } if (ModelState.IsValid) { if (String.IsNullOrWhiteSpace(model.Name)) { ModelState.AddModelError(nameof(CKEditorConfigurationViewModel.Name), S["The name is mandatory."]); } if (String.IsNullOrWhiteSpace(model.Configuration) || !model.Configuration.IsJson()) { ModelState.AddModelError(nameof(CKEditorConfigurationViewModel.Configuration), S["Invalid JSON configuration."]); } } if (ModelState.IsValid) { var document = await _ckEditorConfigurationManager.GetDocumentAsync(); if (document.Configurations.ContainsKey(model.Name)) { ModelState.AddModelError(nameof(CKEditorConfigurationViewModel.Name), S["A configuration with the same name already exists."]); } else { var configuration = new CKEditorConfiguration { Name = model.Name, Configuration = FormatJson(model.Configuration) }; await _ckEditorConfigurationManager.UpdateAsync(model.Name, configuration); } return(RedirectToAction(nameof(Index))); } return(View(model)); }