Ejemplo n.º 1
0
        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);
                    }
                }
            }
Ejemplo n.º 2
0
        //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);
        }
Ejemplo n.º 3
0
        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);
                    }
                }
            }