/// <summary> /// Constructor for TPetraShepherdPagesList. This function reads in a yaml file from the appropriate /// namespace, parses it into xmlNodes, and adds them to the list of pages so that they can be read /// by the individual ShepherdPage constructor, which it calls. /// </summary> /// <param name="AYamlFile">Full path to the Shepherd's YAML Definition file.</param> public TPetraShepherdPagesList(string AYamlFile) { TLogging.Log("Entering TPetraShepherdPagesList Constructor. AYamlFile = " + AYamlFile + "..."); TYml2Xml parser = new TYml2Xml(AYamlFile); XmlDocument XmlPages = parser.ParseYML2XML(); TLogging.Log("TPetraShepherdPagesList currently has this many nodes: " + XmlPages.LastChild.LastChild.LastChild.ChildNodes.Count); XmlNode temporaryXmlNode = XmlPages.LastChild.LastChild.LastChild.FirstChild; //...LastChild.LastChild.LastChild.FirstChild is required because of the structure of the XML File after parsing. int counter = 0; XmlNodeList nodeList; XmlNode root = XmlPages.DocumentElement; nodeList = XmlPages.LastChild.LastChild.LastChild.ChildNodes; TLogging.Log("The amount of nodes in the nodeList in the TPetraShepherdPagesList constructor is as follows: " + nodeList.Count); foreach (XmlNode node in nodeList) { if (node.Name.Contains("SubShepherd.")) { TLogging.Log("TPetraSHepherdPagesList Constructor loop: Found a sub shepherd.. Skipping.. "); } else { TPetraShepherdPage temporaryPetraShepherdPage = new TPetraShepherdPage(node); // Constructor call for each page built off an XML node. TLogging.Log("TPetraShepherdPagesList Constructor loop: THE TITLE OF THE CURRENT PAGE IS: " + temporaryPetraShepherdPage.Title); FPagesList.Add(temporaryPetraShepherdPage.ID, temporaryPetraShepherdPage); } counter++; } TPetraShepherdFinishPage shepherdFinishPage = new TPetraShepherdFinishPage(XmlPages); TLogging.Log("Adding a shepherd finish page: " + shepherdFinishPage.ID); FPagesList.Add(shepherdFinishPage.ID, shepherdFinishPage); //// //Temporary Statement to add a subshepherd finish page in addition to the Finish page above //// TPetraShepherdFinishPage shepherdSubFinishPage = new TPetraShepherdFinishPage(XmlPages, "SubShepherd"); //// TLogging.Log("Adding a shepherd sub-finish page: " + shepherdSubFinishPage.ID); //// FPagesList.Add(shepherdSubFinishPage.ID, shepherdSubFinishPage); TLogging.Log("TPetraShepherdPagesList Constructor ran successfully."); }
/// <summary> /// Constructor for TPetraShepherdPagesList. This function reads in a yaml file from the appropriate /// namespace, parses it into xmlNodes, and adds them to the list of pages so that they can be read /// by the individual ShepherdPage constructor, which it calls. /// </summary> /// <param name="AYamlFile">Full path to the Shepherd's YAML Definition file.</param> public TPetraShepherdPagesList(string AYamlFile) { TLogging.Log("Entering TPetraShepherdPagesList Constructor. AYamlFile = " + AYamlFile + "..."); TYml2Xml parser = new TYml2Xml(AYamlFile); XmlDocument XmlPages = parser.ParseYML2XML(); TLogging.Log("TPetraShepherdPagesList currently has this many nodes: " + XmlPages.LastChild.LastChild.LastChild.ChildNodes.Count); XmlNode temporaryXmlNode = XmlPages.LastChild.LastChild.LastChild.FirstChild; //...LastChild.LastChild.LastChild.FirstChild is required because of the structure of the XML File after parsing. int counter = 0; XmlNodeList nodeList; XmlNode root = XmlPages.DocumentElement; nodeList = XmlPages.LastChild.LastChild.LastChild.ChildNodes; TLogging.Log("The amount of nodes in the nodeList in the TPetraShepherdPagesList constructor is as follows: " + nodeList.Count); foreach (XmlNode node in nodeList) { if (node.Name.Contains("SubShepherd.")) { TLogging.Log("TPetraSHepherdPagesList Constructor loop: Found a sub shepherd.. Skipping.. "); } else { TPetraShepherdPage temporaryPetraShepherdPage = new TPetraShepherdPage(node); // Constructor call for each page built off an XML node. TLogging.Log("TPetraShepherdPagesList Constructor loop: THE TITLE OF THE CURRENT PAGE IS: " + temporaryPetraShepherdPage.Title); FPagesList.Add(temporaryPetraShepherdPage.ID, temporaryPetraShepherdPage); } counter++; } TPetraShepherdFinishPage shepherdFinishPage = new TPetraShepherdFinishPage(XmlPages); TLogging.Log("Adding a shepherd finish page: " + shepherdFinishPage.ID); FPagesList.Add(shepherdFinishPage.ID, shepherdFinishPage); //// //Temporary Statement to add a subshepherd finish page in addition to the Finish page above //// TPetraShepherdFinishPage shepherdSubFinishPage = new TPetraShepherdFinishPage(XmlPages, "SubShepherd"); //// TLogging.Log("Adding a shepherd sub-finish page: " + shepherdSubFinishPage.ID); //// FPagesList.Add(shepherdSubFinishPage.ID, shepherdSubFinishPage); TLogging.Log("TPetraShepherdPagesList Constructor ran successfully."); }