public static SectionTrafficData[] getSectionData(String urlstr) { //try { string url = urlstr; System.Collections.ArrayList ary = new System.Collections.ArrayList(); System.Xml.XmlReader rd = null; // Ds ds = new Ds(); using (rd = System.Xml.XmlTextReader.Create(url)) { while (rd.Read()) { if (rd.Name == "traffic_data" && rd.NodeType == System.Xml.XmlNodeType.Element) { // Ds.tblSecTrafficDataRow r = ds.tblSecTrafficData.NewtblSecTrafficDataRow(); string dir = ""; switch (System.Convert.ToString(rd["directionId"])) { case "1": dir = "E"; break; case "2": dir = "W"; break; case "3": dir = "S"; break; case "4": dir = "N"; break; } //r.directionId = dir; //r.end_location = System.Convert.ToString(rd["end_location"]); //r.end_milepost = System.Convert.ToUInt32(rd["end_milepost"]); //r.expresswayId = rd["expresswayId"].ToString(); //r.freewayId = rd["freewayId"].ToString(); //r.from_location = rd["from_location"].ToString(); //r.from_milepost = System.Convert.ToUInt32(rd["from_milepost"]); //r.section_lower_limit = System.Convert.ToUInt32(rd["section_lower_limit"]); //r.section_upper_limit = System.Convert.ToUInt32(rd["section_upper_limit"]); //r.travel_time = System.Convert.ToSingle(rd["travel_time"]); SectionTrafficData sec = new SectionTrafficData(rd["freewayId"].ToString().Trim() == "" ? rd["expresswayId"].ToString() : rd["freewayId"].ToString().Trim(), dir, System.Convert.ToInt32(rd["from_milepost"]), System.Convert.ToInt32(rd["end_milepost"]),rd["from_location"].ToString(), System.Convert.ToString(rd["end_location"]), System.Convert.ToInt32(rd["travel_time"]), System.Convert.ToInt32(rd["section_upper_limit"]), System.Convert.ToInt32(rd["section_lower_limit"])); ary.Add(sec); // ds.tblSecTrafficData.AddtblSecTrafficDataRow(r); } else if (rd.Name == "file_attribute" && rd.NodeType == System.Xml.XmlNodeType.Element) SectionTrafficData.timeStamp=System.Convert.ToDateTime(rd["time"]); } rd.Close(); } SectionTrafficData[] ret = new SectionTrafficData[ary.Count]; for (int i = 0; i < ary.Count; i++) ret[i] =(SectionTrafficData) ary[i]; return ret; }
public void LoadData() { SectionTrafficData[] datas; try { datas = TIMCC.TIMCC_Factory.getSectionData(url); } catch (Exception ex) { ConsoleServer.WriteLine(ex.Message + "," + ex.StackTrace); return; } Hashtable temp = new Hashtable(); foreach (SectionTrafficData sec in datas) { //String key=sec.lineid+"-"+sec.direction; if (!temp.ContainsKey(sec.getKey())) { temp.Add(sec.getKey(), new ArrayList()); } //else ((ArrayList)temp[sec.getKey()]).Add(sec); } lock (this.lines) { this.lines.Clear(); foreach (String key in temp.Keys) { SectionTrafficData[] ds = new SectionTrafficData[((ArrayList)temp[key]).Count]; for (int i = 0; i < ds.Length; i++) ds[i] = (SectionTrafficData)((ArrayList)temp[key])[i]; System.Array.Sort(ds); lines.Add(key, ds); } } }
public void LoadData() { lock (this.lines) { this.lines.Clear(); SectionTrafficData[] datas; datas = TIMCC.TIMCC_Factory.getSectionData(url); Hashtable temp = new Hashtable(); foreach (SectionTrafficData sec in datas) { //String key=sec.lineid+"-"+sec.direction; if (!temp.ContainsKey(sec.getKey())) temp.Add(sec.getKey(), new ArrayList()); else ((ArrayList)temp[sec.getKey()]).Add(sec); } foreach (String key in temp.Keys) { SectionTrafficData[] ds = new SectionTrafficData[((ArrayList)temp[key]).Count]; for (int i = 0; i < ds.Length; i++) ds[i] = (SectionTrafficData)((ArrayList)temp[key])[i]; System.Array.Sort(ds); lines.Add(key, ds); } } }