Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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();
        }