private static void read_settings(XmlNodeReader NodeReader, Complete_Item_Aggregation HierarchyObject) { 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:WEBSKINS": NodeReader.Read(); string webskins = NodeReader.Value; string[] splitter = webskins.Split(",".ToCharArray()); foreach (string thisSplitter in splitter) { if ( thisSplitter.Length > 0 ) HierarchyObject.Add_Web_Skin(thisSplitter.ToLower()); } break; case "HI:CSS": NodeReader.Read(); HierarchyObject.CSS_File = NodeReader.Value.Trim(); break; case "HI:CUSTOMHOME": NodeReader.Read(); // No longer do anything with this tag // HierarchyObject.Custom_Home_Page_Source_File = NodeReader.Value.Trim(); break; case "HI:FACETS": NodeReader.Read(); string facets = NodeReader.Value; string[] splitter2 = facets.Split(",".ToCharArray()); HierarchyObject.Clear_Facets(); foreach (string thisSplitter2 in splitter2) { HierarchyObject.Add_Facet(Convert.ToInt16(thisSplitter2)); } break; case "HI:MAPSEARCH": if (NodeReader.MoveToAttribute("type")) { switch (NodeReader.GetAttribute("type").ToLower()) { case "extent": case "computed": // This should already be set, assuming there were values to be added if (HierarchyObject.Map_Search_Display == null) { HierarchyObject.Map_Search_Display = new Item_Aggregation_Map_Coverage_Info(Item_Aggregation_Map_Coverage_Type_Enum.COMPUTED); } break; case "fixed": decimal latitude = 999; decimal longitude = 999; int zoom = 999; if (NodeReader.MoveToAttribute("latitude")) { Decimal.TryParse(NodeReader.GetAttribute("latitude"), out latitude); } if (NodeReader.MoveToAttribute("longitude")) { Decimal.TryParse(NodeReader.GetAttribute("longitude"), out longitude); } if (NodeReader.MoveToAttribute("zoom")) { Int32.TryParse(NodeReader.GetAttribute("zoom"), out zoom); } if ((latitude != 999) && (longitude != 999)) { HierarchyObject.Map_Search_Display = new Item_Aggregation_Map_Coverage_Info(Item_Aggregation_Map_Coverage_Type_Enum.FIXED, zoom, longitude, latitude ); } break; } } break; case "HI:MAPBROWSE": if (NodeReader.MoveToAttribute("type")) { switch (NodeReader.GetAttribute("type").ToLower()) { case "extent": HierarchyObject.Map_Browse_Display = new Item_Aggregation_Map_Coverage_Info(Item_Aggregation_Map_Coverage_Type_Enum.EXTENT); break; case "computed": HierarchyObject.Map_Browse_Display = new Item_Aggregation_Map_Coverage_Info(Item_Aggregation_Map_Coverage_Type_Enum.COMPUTED); break; case "fixed": decimal latitude = 999; decimal longitude = 999; int zoom = 999; if (NodeReader.MoveToAttribute("latitude")) { Decimal.TryParse(NodeReader.GetAttribute("latitude"), out latitude); } if (NodeReader.MoveToAttribute("longitude")) { Decimal.TryParse(NodeReader.GetAttribute("longitude"), out longitude); } if (NodeReader.MoveToAttribute("zoom")) { Int32.TryParse(NodeReader.GetAttribute("zoom"), out zoom); } if ((latitude != 999) && (longitude != 999)) { HierarchyObject.Map_Browse_Display = new Item_Aggregation_Map_Coverage_Info(Item_Aggregation_Map_Coverage_Type_Enum.FIXED, zoom, longitude, latitude); } break; } } break; } } if (NodeReader.NodeType == XmlNodeType.EndElement) { if (NodeReader.Name.Trim().ToUpper() == "HI:SETTINGS") { return; } } } }