private void process_template_header(XmlNodeReader nodeReader, Template thisTemplate) { // Read all the nodes while (nodeReader.Read()) { // Get the node name, trimmed and to upper string nodeName = nodeReader.Name.Trim().ToUpper(); // If this is the inputs or constant start tag, return if ((nodeReader.NodeType == XmlNodeType.Element) && ((nodeName == "INPUTS") || (nodeName == "CONSTANTS"))) { return; } // If this is the beginning tag for an element, assign the next values accordingly if (nodeReader.NodeType == XmlNodeType.Element) { // switch the rest based on the tag name switch (nodeName) { case "NAME": // Determine the language and then add this name if (nodeReader.HasAttributes) { nodeReader.MoveToFirstAttribute(); thisTemplate.Set_Title(Template_Language_Convertor.ToEnum(nodeReader.Value), read_text_node(nodeReader)); } else { thisTemplate.Set_Title(DEFAULT_LANGUAGE, read_text_node(nodeReader)); } break; case "NOTES": thisTemplate.Notes = (thisTemplate.Notes + " " + read_text_node(nodeReader)).Trim(); break; case "DATECREATED": DateTime tempDate; if (DateTime.TryParse(read_text_node(nodeReader), out tempDate)) { thisTemplate.DateCreated = tempDate; } break; case "LASTMODIFIED": DateTime tempDate2; if (DateTime.TryParse(read_text_node(nodeReader), out tempDate2)) { thisTemplate.LastModified = tempDate2; } break; case "CREATOR": thisTemplate.Creator = read_text_node(nodeReader); break; } } } }
private void process_inputs(XmlNodeReader nodeReader, Template thisTemplate) { // Keep track of the current pages and panels Template_Page currentPage = null; Template_Panel currentPanel = null; bool inPanel = false; // Read all the nodes while (nodeReader.Read()) { // Get the node name, trimmed and to upper string nodeName = nodeReader.Name.Trim().ToUpper(); // If this is the inputs or constant start tag, return if (((nodeReader.NodeType == XmlNodeType.EndElement) && (nodeName == "INPUTS")) || ((nodeReader.NodeType == XmlNodeType.Element) && (nodeReader.Name == "CONSTANTS"))) { return; } // If this is the beginning tag for an element, assign the next values accordingly if (nodeReader.NodeType == XmlNodeType.Element) { // Does this start a new page? if (nodeName == "PAGE") { // Set the inPanel flag to false inPanel = false; // Create the new page and add to this template currentPage = new Template_Page(); thisTemplate.InputPages.Add(currentPage); } // Does this start a new panel? if (nodeName == "PANEL") { // Set the inPanel flag to true inPanel = true; // Create the new panel and add to the current page currentPanel = new Template_Panel(); if (currentPage != null) { currentPage.Panels.Add(currentPanel); } } // Is this a name element? if (nodeName == "NAME") { // Determine the language Template_Language language; if (nodeReader.HasAttributes) { nodeReader.MoveToFirstAttribute(); language = Template_Language_Convertor.ToEnum(nodeReader.Value); } else { language = DEFAULT_LANGUAGE; } // Get the text string title = read_text_node(nodeReader); // Set the name for either the page or panel if (inPanel) { currentPanel.Set_Title(language, title); } else { if (currentPage != null) { currentPage.Set_Title(language, title); } } } // Is this a new element? if ((nodeName == "ELEMENT") && (nodeReader.HasAttributes)) { abstract_Element currentElement = process_element(nodeReader); if ((currentElement != null) && (currentPanel != null)) { currentPanel.Elements.Add(currentElement); } } } } }