private static void read_browse(bool browse, XmlNodeReader nodeReader, Item_Aggregation hierarchyObject ) { // Create a new browse/info object Item_Aggregation_Browse_Info newBrowse = new Item_Aggregation_Browse_Info { Browse_Type = Item_Aggregation_Browse_Info.Browse_Info_Type.Browse_Home, Source = Item_Aggregation_Browse_Info.Source_Type.Static_HTML, Data_Type = Item_Aggregation_Browse_Info.Result_Data_Type.Text }; bool isDefault = false; string code = String.Empty; // Determine which XML node name to look for and set browse v. info string lastName = "HI:BROWSE"; if (!browse) { lastName = "HI:INFO"; newBrowse.Browse_Type = Item_Aggregation_Browse_Info.Browse_Info_Type.Info; } // Check for the attributes if (nodeReader.HasAttributes) { if (nodeReader.MoveToAttribute("location")) { if (nodeReader.Value == "BROWSEBY") newBrowse.Browse_Type = Item_Aggregation_Browse_Info.Browse_Info_Type.Browse_By; } if (nodeReader.MoveToAttribute("default")) { if (nodeReader.Value == "DEFAULT") isDefault = true; } } // Step through the XML and build this browse/info object while (nodeReader.Read()) { // If this is the beginning tag for an element, assign the next values accordingly if (nodeReader.NodeType == XmlNodeType.Element) { // Get the node name, trimmed and to upper string nodeName = nodeReader.Name.Trim().ToUpper(); // switch the rest based on the tag name switch (nodeName) { case "HI:METADATA": nodeReader.Read(); newBrowse.Code = nodeReader.Value.ToLower(); newBrowse.Source = Item_Aggregation_Browse_Info.Source_Type.Database; newBrowse.Data_Type = Item_Aggregation_Browse_Info.Result_Data_Type.Table; break; case "HI:CODE": nodeReader.Read(); newBrowse.Code = nodeReader.Value.ToLower(); break; case "HI:TITLE": // Look for a language attached to this title string titleLanguage = String.Empty; if ((nodeReader.HasAttributes) && ( nodeReader.MoveToAttribute("lang"))) { titleLanguage = nodeReader.GetAttribute("lang"); } // read and save the title nodeReader.Read(); newBrowse.Add_Label( nodeReader.Value, Web_Language_Enum_Converter.Code_To_Enum(titleLanguage)); break; case "HI:BODY": // Look for a language attached to this title string bodyLanguage = String.Empty; if ((nodeReader.HasAttributes) && (nodeReader.MoveToAttribute("lang"))) { bodyLanguage = nodeReader.GetAttribute("lang"); } // read and save the title nodeReader.Read(); string bodySource = nodeReader.Value; newBrowse.Add_Static_HTML_Source(bodySource, Web_Language_Enum_Converter.Code_To_Enum(bodyLanguage)); break; } } if (nodeReader.NodeType == XmlNodeType.EndElement) { if (nodeReader.Name.Trim().ToUpper() == lastName ) { hierarchyObject.Add_Browse_Info(newBrowse); // If this set the default browse by save that information if ((newBrowse.Browse_Type == Item_Aggregation_Browse_Info.Browse_Info_Type.Browse_By) && (isDefault)) { hierarchyObject.Default_BrowseBy = newBrowse.Code; } return; } } } }
private static void read_browse(bool browse, XmlNodeReader nodeReader, Item_Aggregation hierarchyObject) { // Create a new browse/info object Item_Aggregation_Browse_Info newBrowse = new Item_Aggregation_Browse_Info { Browse_Type = Item_Aggregation_Browse_Info.Browse_Info_Type.Browse_Home, Source = Item_Aggregation_Browse_Info.Source_Type.Static_HTML, Data_Type = Item_Aggregation_Browse_Info.Result_Data_Type.Text }; bool isDefault = false; string code = String.Empty; // Determine which XML node name to look for and set browse v. info string lastName = "HI:BROWSE"; if (!browse) { lastName = "HI:INFO"; newBrowse.Browse_Type = Item_Aggregation_Browse_Info.Browse_Info_Type.Info; } // Check for the attributes if (nodeReader.HasAttributes) { if (nodeReader.MoveToAttribute("location")) { if (nodeReader.Value == "BROWSEBY") { newBrowse.Browse_Type = Item_Aggregation_Browse_Info.Browse_Info_Type.Browse_By; } } if (nodeReader.MoveToAttribute("default")) { if (nodeReader.Value == "DEFAULT") { isDefault = true; } } } // Step through the XML and build this browse/info object while (nodeReader.Read()) { // If this is the beginning tag for an element, assign the next values accordingly if (nodeReader.NodeType == XmlNodeType.Element) { // Get the node name, trimmed and to upper string nodeName = nodeReader.Name.Trim().ToUpper(); // switch the rest based on the tag name switch (nodeName) { case "HI:METADATA": nodeReader.Read(); newBrowse.Code = nodeReader.Value.ToLower(); newBrowse.Source = Item_Aggregation_Browse_Info.Source_Type.Database; newBrowse.Data_Type = Item_Aggregation_Browse_Info.Result_Data_Type.Table; break; case "HI:CODE": nodeReader.Read(); newBrowse.Code = nodeReader.Value.ToLower(); break; case "HI:TITLE": // Look for a language attached to this title string titleLanguage = String.Empty; if ((nodeReader.HasAttributes) && (nodeReader.MoveToAttribute("lang"))) { titleLanguage = nodeReader.GetAttribute("lang"); } // read and save the title nodeReader.Read(); newBrowse.Add_Label(nodeReader.Value, Web_Language_Enum_Converter.Code_To_Enum(titleLanguage)); break; case "HI:BODY": // Look for a language attached to this title string bodyLanguage = String.Empty; if ((nodeReader.HasAttributes) && (nodeReader.MoveToAttribute("lang"))) { bodyLanguage = nodeReader.GetAttribute("lang"); } // read and save the title nodeReader.Read(); string bodySource = nodeReader.Value; newBrowse.Add_Static_HTML_Source(bodySource, Web_Language_Enum_Converter.Code_To_Enum(bodyLanguage)); break; } } if (nodeReader.NodeType == XmlNodeType.EndElement) { if (nodeReader.Name.Trim().ToUpper() == lastName) { hierarchyObject.Add_Browse_Info(newBrowse); // If this set the default browse by save that information if ((newBrowse.Browse_Type == Item_Aggregation_Browse_Info.Browse_Info_Type.Browse_By) && (isDefault)) { hierarchyObject.Default_BrowseBy = newBrowse.Code; } return; } } } }