private void EditField(XmlDocument xDoc, FieldEditor fieldEditor) { var fieldElement = LoadFieldElement(xDoc, fieldEditor.FieldName, fieldEditor.Type); SetProperty(fieldElement, "DisplayName", fieldEditor.DisplayNameValue); SetProperty(fieldElement, "Description", fieldEditor.DescriptionValue); if (fieldEditor.ConfigurationChanged) { var configNode = LoadOrAddChild(fieldElement, ConfigurationName, false); SetProperty(configNode, "DefaultValue", fieldEditor.Configuration.DefaultValue); SetProperty(configNode, "ControlHint", fieldEditor.Configuration.ControlHint); SetIntProperty(configNode, "FieldIndex", fieldEditor.Configuration.FieldIndex); SetBoolProperty(configNode, "ReadOnly", fieldEditor.Configuration.ReadOnly); SetBoolProperty(configNode, "Compulsory", fieldEditor.Configuration.Compulsory); SetVisibility(configNode, "VisibleBrowse", fieldEditor.Configuration.VisibleBrowse); SetVisibility(configNode, "VisibleEdit", fieldEditor.Configuration.VisibleEdit); SetVisibility(configNode, "VisibleNew", fieldEditor.Configuration.VisibleNew); if (fieldEditor.Configuration.FieldSpecific != null) { foreach (var kv in fieldEditor.Configuration.FieldSpecific) { SetProperty(configNode, kv.Key, kv.Value?.ToString() ?? string.Empty); } } }
//public IContentTypeBuilder AddAllowedChildTypes(params string[] typeNames) //{ // AllowedChildTypesToAdd = typeNames; // return this; //} public IFieldEditor Field(string name, string type = null) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } var editor = FieldEditors.FirstOrDefault(fe => fe.FieldName == name); if (editor != null) { return(editor); } editor = new FieldEditor(this, name, type); FieldEditors.Add(editor); return(editor); }
private void EditField(XmlDocument xDoc, FieldEditor fieldEditor) { // if we should delete the field, do not throw an error if the xml node is missing var fieldElement = LoadFieldElement(xDoc, fieldEditor.FieldName, fieldEditor.Type, !fieldEditor.DeleteField); if (fieldEditor.DeleteField) { fieldElement?.ParentNode?.RemoveChild(fieldElement); return; } SetProperty(fieldElement, "DisplayName", fieldEditor.DisplayNameValue); SetProperty(fieldElement, "Description", fieldEditor.DescriptionValue); if (fieldEditor.ConfigurationChanged) { var configNode = LoadOrAddChild(fieldElement, ConfigurationName, false); SetProperty(configNode, "DefaultValue", fieldEditor.Configuration.DefaultValue); SetProperty(configNode, "ControlHint", fieldEditor.Configuration.ControlHint); SetIntProperty(configNode, "FieldIndex", fieldEditor.Configuration.FieldIndex); SetBoolProperty(configNode, "ReadOnly", fieldEditor.Configuration.ReadOnly); SetBoolProperty(configNode, "Compulsory", fieldEditor.Configuration.Compulsory); SetVisibility(configNode, "VisibleBrowse", fieldEditor.Configuration.VisibleBrowse); SetVisibility(configNode, "VisibleEdit", fieldEditor.Configuration.VisibleEdit); SetVisibility(configNode, "VisibleNew", fieldEditor.Configuration.VisibleNew); if (fieldEditor.Configuration.FieldSpecific != null) { foreach (var kv in fieldEditor.Configuration.FieldSpecific) { SetProperty(configNode, kv.Key, kv.Value?.ToString() ?? string.Empty); } } // remove configuration sections foreach (var configToDelete in fieldEditor.ConfigurationToDelete) { var child = LoadChild(configNode, configToDelete); if (child != null) { configNode.RemoveChild(child); } } if (configNode.ChildNodes.Count == 0) { configNode.ParentNode?.RemoveChild(configNode); } } // remove properties if (fieldElement != null) { foreach (var propertyToDelete in fieldEditor.PropertiesToDelete) { var child = LoadChild(fieldElement, propertyToDelete); if (child != null) { fieldElement.RemoveChild(child); } } }