public void CanUseAreControlsValid() { //asign var controlManager = new ControlManager(); var xForm = new XForm(); xForm.Root = new XContainer { Name = "BaseContainer" }; var xAttribute = new XAttribute<string>("StringAttribute") { Name = "StringAttribute", Value = "StringAttribute", Use = XAttributeUse.Required }; var xContainer = new XContainer { Name = "ChildContainer", Value = "ChildContainerValue", ParentContainer = xForm.Root, MaxOccurs = 1234, MinOccurs = 0 }; xContainer.Attributes.Add(xAttribute); var xElement = new XElement { Name = "Element", Value = "ElementValue" }; xContainer.Elements.Add(xElement); xForm.Root.Attributes.Add(xAttribute); xForm.Root.Containers.Add(xContainer); xForm.Root.Elements.Add(xElement); xContainer.Value = "test"; //action controlManager.GetGroupBoxGui(xForm.Root, xForm.Root); var areControlsValid = controlManager.AreControlsValid(); //assert Assert.False(areControlsValid); }
/// <summary> /// Write data from form to output stream. /// </summary> /// <param name="stream">Output stream.</param> /// <param name="xForm">XForm with data.</param> public void WriteXFormToXmlFile(Stream stream, XForm xForm) { var settings = new XmlWriterSettings(); settings.Indent = true; settings.NamespaceHandling = NamespaceHandling.OmitDuplicates; using (var writer = System.Xml.XmlWriter.Create(stream, settings)) { writer.WriteStartElement(xForm.Root.Name); writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance"); foreach (var xAttribute in xForm.Root.Attributes) { writer.WriteAttributeString(xAttribute.Name, xAttribute.GetStringXmlValue()); } foreach (var xElement in xForm.Root.Elements) { xElement.WriteXml(writer); } foreach (var xContainer in xForm.Root.Containers) { xContainer.WriteXml(writer); } writer.WriteEndElement(); } stream.Close(); }
/// <summary> /// Fills given XForm structure with data form given Xml file. /// </summary> /// <param name="xmlFileName">Path to Xml file contains data.</param> /// <param name="xsdForm">XForm to be filled with data from Xml file.</param> /// <returns>Filled XForm.</returns> public XForm GetFilledXForm(string xmlFileName, XForm xsdForm) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(xmlFileName); var filled = Fill(xsdForm.Root, xmlDoc); if (!filled) { return null; } return new XForm { Root = _newRoot }; }
/// <summary> /// Creates XForm from given Xsd file /// </summary> /// <param name="file">Path to Xsd file.</param> internal void GenerateFormFromXsdFile(string file) { _mainPanel.Controls.Clear(); _xForm = null; _controlManager.Clear();//prepare for new rendering var xsdParser = new XsdParser(); _xForm = xsdParser.ParseXsdFile(file); _xFormData = xsdParser.ParseXsdFile(file); var generateGuiGetGroupBox = _controlManager.GetGroupBoxGui(_xForm.Root, _xFormData.Root); _mainPanel.Controls.Add(generateGuiGetGroupBox); }
/// <summary> /// Get XForm from given Xsd file. /// </summary> /// <param name="fileName">Path to Xsd file.</param> /// <returns></returns> public XForm ParseXsdFile(string fileName) { _xFormRoot = null; _lastContainer = null; var xmlSchema = LoadXmlSchema(fileName); foreach (XmlSchemaElement element in xmlSchema.Elements.Values) { BuildXForm(element, null); } var xForm = new XForm(); xForm.Root = _xFormRoot; return xForm; }
public void CanUseGenerateGui() { //asign var controlManager = new ControlManager(); var xForm = new XForm(); xForm.Root = new XContainer { Name = "BaseContainer" }; var xAttribute = new XAttribute<string>(string.Empty) { Name = "StringAttribute", Value = "StringAttribute", Use = XAttributeUse.Required }; var xContainer = new XContainer { Name = "ChildContainer", Value = "ChildContainerValue", ParentContainer = xForm.Root, MaxOccurs = 1234, MinOccurs = 0 }; xContainer.Attributes.Add(xAttribute); var xElement = new XElement { Name = "Element", Value = "ElementValue" }; xContainer.Elements.Add(xElement); xForm.Root.Attributes.Add(xAttribute); xForm.Root.Containers.Add(xContainer); xForm.Root.Elements.Add(xElement); //action var groupBoxGui = controlManager.GetGroupBoxGui(xForm.Root, xForm.Root); //assert Assert.NotNull(groupBoxGui); }
public void CanParseXFormFromXmlFileDocumentumArchivageSettingsXsd() { //asign var xmlWriter = new XmlWriter(); var xForm = new XForm(); xForm.Root = new XContainer { Name = "BaseContainer" }; var xAttribute = new XAttribute<string>(string.Empty) { Name = "StringAttribute", Value = "StringAttribute" }; var xContainer = new XContainer { Name = "ChildContainer", Value = "ChildContainerValue", ParentContainer = xForm.Root }; xContainer.Attributes.Add(xAttribute); var xElement = new XElement { Name = "Element", Value = "ElementValue" }; xContainer.Elements.Add(xElement); xForm.Root.Attributes.Add(xAttribute); xForm.Root.Containers.Add(xContainer); xForm.Root.Elements.Add(xElement); var fileStream = new FileStream(@"testXml.txt", FileMode.OpenOrCreate); //action xmlWriter.WriteXFormToXmlFile(fileStream, xForm); //assert var xml = File.ReadAllText(@"testXml.txt"); var resultXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n" + "<BaseContainer xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" StringAttribute=\"StringAttribute\">" + "\r\n <Element>ElementValue</Element>" + "\r\n <ChildContainer StringAttribute=\"StringAttribute\">ChildContainerValue" + "<Element>ElementValue</Element>" + "</ChildContainer>" + "\r\n</BaseContainer>"; Assert.AreEqual(xml, resultXml); }
public void CanUseUpdateBindingForChildren() { //asign var controlManager = new ControlManager(); var xForm = new XForm(); xForm.Root = new XContainer { Name = "BaseContainer" }; var xAttribute1 = new XAttribute<string>(string.Empty) { Name = "StringAttribute1", Value = "StringAttribute", Use = XAttributeUse.Required }; var xAttribute2 = new XAttribute<int>(1) { Name = "StringAttribute2", Use = XAttributeUse.Required }; var xAttribute3 = new XAttribute<bool>(true) { Name = "StringAttribute3", Use = XAttributeUse.Required }; var xAttribute4 = new XAttribute<DateTime>(DateTime.Now) { Name = "StringAttribute4", Use = XAttributeUse.Required }; var xAttribute5 = new XEnumerationAttribute<string>(string.Empty) { Name = "StringAttribute5", Use = XAttributeUse.Required }; var xContainer = new XContainer { Name = "ChildContainer", Value = "ChildContainerValue", ParentContainer = xForm.Root, MaxOccurs = 1234, MinOccurs = 0 }; xContainer.Attributes.Add(xAttribute1); var xElement = new XElement { Name = "Element", Value = "ElementValue" }; xContainer.Elements.Add(xElement); xForm.Root.Attributes.Add(xAttribute1); xForm.Root.Attributes.Add(xAttribute2); xForm.Root.Attributes.Add(xAttribute3); xForm.Root.Attributes.Add(xAttribute4); xForm.Root.Attributes.Add(xAttribute5); xForm.Root.Containers.Add(xContainer); xForm.Root.Elements.Add(xElement); //action controlManager.GetGroupBoxGui(xForm.Root, xForm.Root); controlManager.UpdateBindingForVisibleContainer(xForm.Root); //assert }
/// <summary> /// Updates values in XForm from given Xml file. /// </summary> /// <param name="fileName">Path to Xml file contains data.</param> internal void UpdateFormFromXml(string fileName) { var xmlParser = new XmlParser(); var filledXForm = xmlParser.GetFilledXForm(fileName, _xForm); if (filledXForm != null) { _xFormData = filledXForm; } _controlManager.UpdateVisibleContainers(_xFormData.Root); _controlManager.UpdateBindingForVisibleContainer(_xFormData.Root); }