private void MainListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { Vertrektijd selected = MainListBox.SelectedItem as Vertrektijd; if (selected != null) { _vm.RitInfoCommand.Execute(selected); } }
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; })); }
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; })); }