Esempio n. 1
0
        public override async Task <IDisplayResult> UpdateAsync(ContentTypePartDefinition contentTypePartDefinition, UpdateTypePartEditorContext context)
        {
            if (!String.Equals(nameof(HtmlBodyPart), contentTypePartDefinition.PartDefinition.Name, StringComparison.Ordinal))
            {
                return(null);
            }

            if (contentTypePartDefinition.Editor() == "Trumbowyg")
            {
                var model    = new TrumbowygSettingsViewModel();
                var settings = new HtmlBodyPartTrumbowygEditorSettings();

                await context.Updater.TryUpdateModelAsync(model, Prefix);

                settings.InsertMediaWithUrl = model.InsertMediaWithUrl;

                try
                {
                    settings.Options = model.Options;
                    JObject.Parse(settings.Options);
                }
                catch
                {
                    context.Updater.ModelState.AddModelError(Prefix, S["The options are written in an incorrect format."]);
                    return(Edit(contentTypePartDefinition, context.Updater));
                }

                context.Builder.WithSettings(settings);
            }

            return(Edit(contentTypePartDefinition, context.Updater));
        }
        public override async Task <IDisplayResult> UpdateAsync(ContentTypePartDefinition contentTypePartDefinition, UpdateTypePartEditorContext context)
        {
            if (contentTypePartDefinition.Editor() == "Trumbowyg")
            {
                var model    = new TrumbowygSettingsViewModel();
                var settings = new HtmlBodyPartTrumbowygEditorSettings();

                await context.Updater.TryUpdateModelAsync(model, Prefix);

                if (!model.Options.IsJson())
                {
                    context.Updater.ModelState.AddModelError(Prefix + "." + nameof(TrumbowygSettingsViewModel.Options), S["The options are written in an incorrect format."]);
                }
                else
                {
                    settings.InsertMediaWithUrl = model.InsertMediaWithUrl;
                    settings.Options            = model.Options;
                    context.Builder.WithSettings(settings);
                }
            }

            return(Edit(contentTypePartDefinition, context.Updater));
        }