private void MainListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Vertrektijd selected = MainListBox.SelectedItem as Vertrektijd;

            if (selected != null)
            {
                _vm.RitInfoCommand.Execute(selected);
            }
        }
Пример #2
0
        private void ToRitInfo(Vertrektijd tijd)
        {
            string trein = string.Format("{0} ({1})", tijd.TreinSoort, tijd.Ritnummer);

            NavigationService.NavigateToRitInfoPage(string.Format("id={0}&company={1}&trein={2}&richting={3}&stationCode={4}", tijd.Ritnummer, tijd.Vervoerder, trein, tijd.Eindbestemming, this.CurrentStation.Code));
        }
        public async Task <List <Vertrektijd> > GetVertrektijden(string station)
        {
            Uri        address   = new Uri(string.Format(NSApi.BaseUrl + "/ns-api-avt?station={0}&a={1}", station, DateTime.Now.Ticks), UriKind.Absolute);
            HttpClient webclient = new HttpClient();

            webclient.MaxResponseContentBufferSize = 9000000;

            //webclient.Credentials = new NetworkCredential(NSApi.Login, NSApi.Password);

            string response = await webclient.GetStringAsync(address);

            return(await Task.Run(() =>
            {
                //System.Threading.Thread.Sleep(5000);

                XElement tijdenXmlElement = XElement.Parse(response);

                List <Vertrektijd> vertrektijdList = new List <Vertrektijd>();

                foreach (var element in tijdenXmlElement.Descendants("VertrekkendeTrein"))
                {
                    Vertrektijd tijd = new Vertrektijd();

                    if (element.Element("RitNummer") != null)
                    {
                        tijd.Ritnummer = int.Parse(element.Element("RitNummer").Value);
                    }

                    if (element.Element("VertrekTijd") != null)
                    {
                        string time = element.Element("VertrekTijd").Value;
                        int zoneIndex = time.LastIndexOf('+');
                        if (zoneIndex > 0)
                        {
                            time = time.Substring(0, zoneIndex);
                        }

                        tijd.Tijd = DateTime.Parse(time);
                    }

                    tijd.VertragingTekst = XmlHelper.GetElementText(element.Element("VertrekVertragingTekst"));
                    tijd.Eindbestemming = XmlHelper.GetElementText(element.Element("EindBestemming"));
                    tijd.TreinSoort = XmlHelper.GetElementText(element.Element("TreinSoort"));
                    tijd.Route = XmlHelper.GetElementText(element.Element("RouteTekst"));
                    tijd.ReisTip = XmlHelper.GetElementText(element.Element("ReisTip"));
                    tijd.Vervoerder = XmlHelper.GetElementText(element.Element("Vervoerder"));
                    if (string.IsNullOrEmpty(tijd.Vervoerder))
                    {
                        tijd.Vervoerder = "NS";
                    }
                    tijd.VervoerderDisplay = tijd.Vervoerder;

                    tijd.Vertrekspoor = XmlHelper.GetElementText(element.Element("VertrekSpoor"));

                    if (element.Element("VertrekSpoor") != null &&
                        element.Element("VertrekSpoor").Attribute("wijziging") != null)
                    {
                        tijd.IsVertrekspoorWijziging = bool.Parse(element.Element("VertrekSpoor").Attribute("wijziging").Value);
                    }


                    string sep = string.Empty;
                    foreach (var opm in element.Descendants("Opmerking"))
                    {
                        tijd.Opmerkingen += string.Format("{0}{1}", sep, opm.Value)
                                            .Replace("\r", string.Empty)
                                            .Replace("\t", string.Empty)
                                            .Replace("\n", string.Empty)
                                            .Trim();
                        sep = ", ";
                    }



                    vertrektijdList.Add(tijd);
                }



                if (vertrektijdList != null)
                {
                    //var vervoerders = vertrektijdList.GroupBy(x => x.Vervoerder).Select(x => x.Key).ToList();

                    bool showVervoerder = vertrektijdList.GroupBy(x => x.Vervoerder).Select(x => x.Key)
                                          .Where(x => !string.IsNullOrEmpty(x))
                                          .Where(x => !x.ToLower().Contains("hispeed"))
                                          .Where(x => !x.ToLower().Contains("spoorwegen"))
                                          .Count() > 1;


                    bool _useAlternate = false;

                    foreach (var tijd in vertrektijdList)
                    {
                        ////Set background color here, for performance
                        tijd.IsAlternate = _useAlternate;
                        _useAlternate = !_useAlternate;

                        if (!showVervoerder)
                        {
                            tijd.VervoerderDisplay = null;
                        }
                    }
                }

                //await TaskEx.Delay(TimeSpan.FromSeconds(5));

                return vertrektijdList;
            }));
        }
Пример #4
0
        public async Task <List <Vertrektijd> > GetVertrektijden(string station)
        {
            Uri        address   = new Uri(string.Format(NSApi.BaseUrl + "/ns-api-avt?station={0}&a={1}", station, DateTime.Now.Ticks), UriKind.Absolute);
            HttpClient webclient = new HttpClient();

            webclient.MaxResponseContentBufferSize = 9000000;

            //webclient.Credentials = new NetworkCredential(NSApi.Login, NSApi.Password);

            string response = await webclient.GetStringAsync(address);

            return(await Task.Run(() =>
            {
                //System.Threading.Thread.Sleep(5000);

                XElement tijdenXmlElement = XElement.Parse(response);

                List <Vertrektijd> vertrektijdList = new List <Vertrektijd>();

                foreach (var element in tijdenXmlElement.Descendants("VertrekkendeTrein"))
                {
                    Vertrektijd tijd = new Vertrektijd();

                    if (element.Element("RitNummer") != null)
                    {
                        tijd.Ritnummer = int.Parse(element.Element("RitNummer").Value);
                    }

                    if (element.Element("VertrekTijd") != null)
                    {
                        string time = element.Element("VertrekTijd").Value;
                        int zoneIndex = time.LastIndexOf('+');
                        if (zoneIndex > 0)
                        {
                            time = time.Substring(0, zoneIndex);
                        }

                        tijd.Tijd = DateTime.Parse(time);
                    }

                    tijd.Vertraging = GetElementText(element.Element("VertrekVertraging"));
                    tijd.VertragingTekst = GetElementText(element.Element("VertrekVertragingTekst"));
                    tijd.Eindbestemming = GetElementText(element.Element("EindBestemming"));
                    tijd.TreinSoort = GetElementText(element.Element("TreinSoort"));
                    tijd.Route = GetElementText(element.Element("RouteTekst"));
                    tijd.ReisTip = GetElementText(element.Element("ReisTip"));

                    tijd.Vertrekspoor = GetElementText(element.Element("VertrekSpoor"));

                    if (element.Element("VertrekSpoor") != null &&
                        element.Element("VertrekSpoor").Attribute("wijziging") != null)
                    {
                        tijd.IsVertrekspoorWijziging = bool.Parse(element.Element("VertrekSpoor").Attribute("wijziging").Value);
                    }

                    string sep = string.Empty;
                    foreach (var opm in element.Descendants("Opmerking"))
                    {
                        tijd.Opmerkingen += string.Format("{0}{1}", sep, opm.Value)
                                            .Replace("\r", string.Empty)
                                            .Replace("\t", string.Empty)
                                            .Replace("\n", string.Empty)
                                            .Trim();
                        sep = ", ";
                    }



                    vertrektijdList.Add(tijd);
                }

                //await TaskEx.Delay(TimeSpan.FromSeconds(5));

                return vertrektijdList;
            }));
        }