Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        public async Task ExecuteAsync(RecipeExecutionContext context)
        {
            if (!String.Equals(context.Name, "CKEditorConfigurations", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            if (context.Step.Property("CKEditorConfigurations").Value is JObject configurations)
            {
                foreach (var property in configurations.Properties())
                {
                    var name  = property.Name;
                    var value = property.Value.ToObject <CKEditorConfiguration>();

                    await _configurationManager.UpdateAsync(name, value);
                }
            }
        }