private void Request(string destination, RoutedEventArgs e) { //Parst den Fahrplan für ausgehende Verbindungen von der Haltestelle aus dem übergebenen string t = new Thread(new System.Threading.ThreadStart(delegate() { try { do { string strorig = ""; this.Dispatcher.Invoke(new Action(delegate { this.destlabel.Content = "Verbindungen ab " + destination; this.surfaceButton1.Content = "Bitte warten..."; this.Dispatcher.Invoke(new Action(delegate { loadAnim.Visibility = Visibility.Visible; })); if (destination == null) { strorig = this.start.Text; this.destlabel.Content = "Verbindungen ab " + strorig; } else { strorig = destination; } })); this.Dispatcher.Invoke(new Action(delegate { surfaceListBox1.Items.Clear(); })); string postData = "haltestelle=" + strorig + "&ubahn=checked&bus=checked&tram=checked&sbahn=checked"; byte[] data = Encoding.GetEncoding("ISO-8859-1").GetBytes(postData); // Prepare web request... HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://www.mvg-live.de/ims/dfiStaticAuswahl.svc"); myRequest.Method = "POST"; myRequest.ContentType = "application/x-www-form-urlencoded"; myRequest.ContentLength = data.Length; Stream newStream = myRequest.GetRequestStream(); // Send the data. newStream.Write(data, 0, data.Length); newStream.Close(); WebResponse response = myRequest.GetResponse(); //Console.WriteLine(((HttpWebResponse)response).StatusDescription); Stream responseStream = response.GetResponseStream(); StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("ISO-8859-1"), false); String responsestring = reader.ReadToEnd(); //MessageBox.Show(responsestring); HtmlDocument doc = new HtmlDocument(); //Console.WriteLine(responsestring); doc.LoadHtml(responsestring); reader.Close(); response.Close(); responseStream.Close(); HtmlNodeCollection divNodes = doc.DocumentNode.SelectNodes("//tr[@class='rowOdd'] | //tr[@class='rowEven' ]"); HtmlNodeCollection selectNodes = doc.DocumentNode.SelectNodes("//a[@href]"); if (divNodes != null) { //Fügt die einzelnen Einträge in die Liste ein foreach (HtmlNode node in divNodes) { string lineNumber = node.SelectSingleNode("./td[@class='lineColumn']").InnerText; string lineName = node.SelectSingleNode("./td[@class='stationColumn']").InnerText; //MessageBox.Show(lineName); string lineMinutes = node.SelectSingleNode("./td[@class='inMinColumn']").InnerText; FahrplanItem item = new FahrplanItem(lineNumber, new HTMLCharacterConverter().Purge(lineName.Trim()), "In " + lineMinutes + " Min."); this.Dispatcher.Invoke(new Action(delegate { this.surfaceListBox1.Items.Add(item); })); //this.Dispatcher.Invoke(new Action(delegate //{ // if (start.Text != null) // { // //start.IsDropDownOpen = true; // } //})); } } //Zeigt Klickbare einträge der Verbesserungsvorschläge an, falls die Eingabe nicht gefunden wurde foreach (HtmlNode node in selectNodes) { if (!(node.InnerText.Trim().Equals("Fahrten aktualisieren")) && !(node.InnerText.Trim().Equals("Impressum"))) { FahrplanItem item = new FahrplanItem("", node.InnerText.Trim(), ""); this.Dispatcher.Invoke(new Action(delegate { this.surfaceListBox1.Items.Add(item); this.destlabel.Content = "Haltestelle wählen:"; this.Dispatcher.Invoke(new Action(delegate { loadAnim.Visibility = Visibility.Hidden; })); t.Suspend(); })); } } this.Dispatcher.Invoke(new Action(delegate { this.Dispatcher.Invoke(new Action(delegate { loadAnim.Visibility = Visibility.Hidden; })); this.surfaceButton1.Content = "Absenden"; })); Thread.Sleep(60000); } while (1 == 1); } catch { } this.Dispatcher.Invoke(new Action(delegate { loadAnim.Visibility = Visibility.Hidden; })); })); t.Start(); }
private void Request(string destination, RoutedEventArgs e) { //Parst den Fahrplan für ausgehende Verbindungen von der Haltestelle aus dem übergebenen string t = new Thread(new System.Threading.ThreadStart(delegate() { try { do { string strorig = ""; this.Dispatcher.Invoke(new Action(delegate { this.destlabel.Content = "Verbindungen ab " + destination; this.surfaceButton1.Content = "Bitte warten..."; this.Dispatcher.Invoke(new Action(delegate { loadAnim.Visibility = Visibility.Visible; })); if (destination == null) { strorig = this.start.Text; this.destlabel.Content = "Verbindungen ab " + strorig; } else { strorig = destination; } })); this.Dispatcher.Invoke(new Action(delegate { surfaceListBox1.Items.Clear(); })); string postData = "haltestelle=" + strorig + "&ubahn=checked&bus=checked&tram=checked&sbahn=checked"; byte[] data = Encoding.GetEncoding("ISO-8859-1").GetBytes(postData); // Prepare web request... HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://www.mvg-live.de/ims/dfiStaticAuswahl.svc"); myRequest.Method = "POST"; myRequest.ContentType = "application/x-www-form-urlencoded"; myRequest.ContentLength = data.Length; Stream newStream = myRequest.GetRequestStream(); // Send the data. newStream.Write(data, 0, data.Length); newStream.Close(); WebResponse response = myRequest.GetResponse(); //Console.WriteLine(((HttpWebResponse)response).StatusDescription); Stream responseStream = response.GetResponseStream(); StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("ISO-8859-1"), false); String responsestring = reader.ReadToEnd(); //MessageBox.Show(responsestring); HtmlDocument doc = new HtmlDocument(); //Console.WriteLine(responsestring); doc.LoadHtml(responsestring); reader.Close(); response.Close(); responseStream.Close(); HtmlNodeCollection divNodes = doc.DocumentNode.SelectNodes("//tr[@class='rowOdd'] | //tr[@class='rowEven' ]"); HtmlNodeCollection selectNodes = doc.DocumentNode.SelectNodes("//a[@href]"); if (divNodes != null) { //Fügt die einzelnen Einträge in die Liste ein foreach (HtmlNode node in divNodes) { string lineNumber = node.SelectSingleNode("./td[@class='lineColumn']").InnerText; string lineName = node.SelectSingleNode("./td[@class='stationColumn']").InnerText; //MessageBox.Show(lineName); string lineMinutes = node.SelectSingleNode("./td[@class='inMinColumn']").InnerText; FahrplanItem item = new FahrplanItem(lineNumber, new HTMLCharacterConverter().Purge(lineName.Trim()), "In " + lineMinutes + " Min."); this.Dispatcher.Invoke(new Action(delegate { this.surfaceListBox1.Items.Add(item); })); //this.Dispatcher.Invoke(new Action(delegate //{ // if (start.Text != null) // { // //start.IsDropDownOpen = true; // } //})); } } //Zeigt Klickbare einträge der Verbesserungsvorschläge an, falls die Eingabe nicht gefunden wurde foreach (HtmlNode node in selectNodes) { if (!(node.InnerText.Trim().Equals("Fahrten aktualisieren")) && !(node.InnerText.Trim().Equals("Impressum"))) { FahrplanItem item = new FahrplanItem("", node.InnerText.Trim(), ""); this.Dispatcher.Invoke(new Action(delegate { this.surfaceListBox1.Items.Add(item); this.destlabel.Content = "Haltestelle wählen:"; this.Dispatcher.Invoke(new Action(delegate { loadAnim.Visibility = Visibility.Hidden; })); t.Suspend(); })); } } this.Dispatcher.Invoke(new Action(delegate { this.Dispatcher.Invoke(new Action(delegate { loadAnim.Visibility = Visibility.Hidden; })); this.surfaceButton1.Content = "Absenden"; })); Thread.Sleep(60000); } while (1 == 1); } catch { } this.Dispatcher.Invoke(new Action(delegate { loadAnim.Visibility = Visibility.Hidden; })); })); t.Start(); }