//public async Task<List<TrainService>> GetDepartures(ushort numberOfresults, string startingStation, string destinationStation = null) //{ // return GetArrivals(numberOfresults, startingStation, destinationStation); // var arrivals = await MakeArrivalsRequestWithHeaders(numberOfresults, "WAT", "HAV"); // var past = await MakePastRequestWithHeaders(numberOfresults, startingStation, destinationStation); // var future = await MakeFutureRequestWithHeaders(numberOfresults, startingStation, destinationStation); // if (past.GetStationBoardResult.trainServices != null) // { // var res = past.GetStationBoardResult.trainServices.Select(s => new TrainService() { // Destination = s.destination[0].locationName, // ScheduledDeparture = s.std, // ExpectedDepature = s.etd, // ServiceID = s.serviceID}) // .ToList(); // res.AddRange(future.GetStationBoardResult.trainServices.Select(s => new TrainService() // { // Destination = s.destination[0].locationName, // ScheduledDeparture = s.std, // ExpectedDepature = s.etd, // ServiceID = s.serviceID // }) // .ToList()); // //DataContractJsonSerializer f = new DataContractJsonSerializer(res.GetType()); // //using(System.IO.MemoryStream stream = new System.IO.MemoryStream()) // //{ // // f.WriteObject(stream, res); // // stream.Position = 0; // // var content = new System.IO.StreamReader(stream).ReadToEnd(); // //} // foreach (var serivce in res) // { // var details = await MakeServiceDetailsRequestWithHeaders(serivce.ServiceID); // var callingPoints = details.GetServiceDetailsResult.subsequentCallingPoints.FirstOrDefault().callingPoint; // var destination = callingPoints.Where(s => s.crs == destinationStation); // serivce.ScheduledTermination = destination.FirstOrDefault().st; // serivce.ActualTermination = destination.FirstOrDefault().at; // serivce.EstimatedTermination = destination.FirstOrDefault().et; // } // return res; // } // else // { // return new List<TrainService>(); // } //} public Task <GetArrBoardWithDetailsResponse> MakeArrivalsRequestWithHeaders(ushort numberOfresults, string startingStation, string destinationStation = null) { var responce = new List <TrainService>(); using (new OperationContextScope(_service.InnerChannel)) { var msgHeader = MessageHeader.CreateHeader("AccessToken", "", _accessToken); OperationContext.Current.OutgoingMessageHeaders.Add(msgHeader); //return _service.GetDepartureBoardAsync(numberOfresults, startingStation, destinationStation, FilterType.to, -120, 120); return(_service.GetArrBoardWithDetailsAsync(numberOfresults, startingStation, destinationStation, FilterType.from, 0, 120)); } }
public async Task <GetArrBoardWithDetailsResponse> GetArrBoardWithDetailsAsync(AccessToken accessToken, ushort numRows, string crs, string filterCrs, FilterType filterType, int timeOffset, int timeWindow) { return(await Execute(() => client.GetArrBoardWithDetailsAsync(accessToken, numRows, crs, filterCrs, filterType, timeOffset, timeWindow))); }