private void PopulateXmlNodeFromForm(XmlNode targetNode, Form form) { foreach (Field field in form.Fields) { XmlNode newField = CurrentXmlForm.CreateNode(XmlNodeType.Element, "field", null); newField.InnerText = field.Caption; var idAttr = CurrentXmlForm.CreateAttribute(idAttributeName); idAttr.Value = field.Id; var nameAttr = CurrentXmlForm.CreateAttribute(nameAttributeName); nameAttr.Value = field.Name; var isRequiredAttr = CurrentXmlForm.CreateAttribute(isRequiredAttributeName); isRequiredAttr.Value = field.IsRequired?"true": "false"; var fieldLengthAttr = CurrentXmlForm.CreateAttribute(fieldLengthAttributeName); fieldLengthAttr.Value = field.FieldLength.ToString(); var dataTypeAttr = CurrentXmlForm.CreateAttribute(dataTypeAttributeName); dataTypeAttr.Value = field.DataType.LookupCode; newField.Attributes.Append(idAttr); newField.Attributes.Append(nameAttr); newField.Attributes.Append(isRequiredAttr); newField.Attributes.Append(fieldLengthAttr); newField.Attributes.Append(dataTypeAttr); targetNode.AppendChild(newField); } }
public override void SaveForm(Form form) { var root = CurrentXmlForm.DocumentElement; var targetCollection = root.SelectSingleNode(String.Format("form[@name='{0}']", form.Name)); if (targetCollection == null) { targetCollection = CurrentXmlForm.CreateNode(XmlNodeType.Element, "form", null); var idAttr = CurrentXmlForm.CreateAttribute(idAttributeName); idAttr.Value = form.Id; var nameAttr = CurrentXmlForm.CreateAttribute(nameAttributeName); nameAttr.Value = form.Name; targetCollection.Attributes.Append(idAttr); targetCollection.Attributes.Append(nameAttr); PopulateXmlNodeFromForm(targetCollection, form); CurrentXmlForm.AppendChild(targetCollection); } else { targetCollection.RemoveAll(); var idAttr = CurrentXmlForm.CreateAttribute(idAttributeName); idAttr.Value = form.Id; var nameAttr = CurrentXmlForm.CreateAttribute(nameAttributeName); nameAttr.Value = form.Name; targetCollection.Attributes.Append(idAttr); targetCollection.Attributes.Append(nameAttr); PopulateXmlNodeFromForm(targetCollection, form); } CurrentXmlForm.Save(XmlFileName); }