public override IEnumerable<TemplateViewModel> TypePartEditor(ContentTypePartDefinition definition) {
            if (definition.PartDefinition.Name != "CommentsPart")
                yield break;

            var model = new CommentsPartSettingsViewModel {
                Settings = definition.Settings.GetModel<CommentsPartSettings>(),
                HtmlFilters = _htmlFilters
            };

            yield return DefinitionTemplate(model);
        }
        public override IEnumerable<TemplateViewModel> TypePartEditorUpdate(ContentTypePartDefinitionBuilder builder, IUpdateModel updateModel) {
            if (builder.Name != "CommentsPart")
                yield break;

            var model = new CommentsPartSettingsViewModel {
                Settings = new CommentsPartSettings()
            };

            if (updateModel.TryUpdateModel(model, "CommentsPartSettingsViewModel", null, null)) {
                builder.WithSetting("CommentsPartSettings.DefaultThreadedComments", model.Settings.DefaultThreadedComments.ToString(CultureInfo.InvariantCulture));
                builder.WithSetting("CommentsPartSettings.MustBeAuthenticated", model.Settings.MustBeAuthenticated.ToString(CultureInfo.InvariantCulture));
                builder.WithSetting("CommentsPartSettings.HtmlFilter", model.Settings.HtmlFilter);
            }

            yield return DefinitionTemplate(model);
        }