// GET /arrivals/CRS?accessToken=[your token] public async Task <StationBoard> Get(string id, Guid accessToken) { var client = new LDBServiceSoapClient(); var token = MakeAccessToken(accessToken); var board = await client.GetArrivalBoardAsync(token, 42, id.ToUpperInvariant(), null, FilterType.to, 0, 0); return(board.GetStationBoardResult); }
public async Task <GetArrivalBoardResponse> GetArrivalBoardAsync(AccessToken accessToken, ushort numRows, string crs, string filterCrs, FilterType filterType, int timeOffset, int timeWindow) { return (await Execute( () => _client.GetArrivalBoardAsync(accessToken, numRows, crs, filterCrs, filterType, timeOffset, timeWindow))); }
// GET /{board}/CRS?accessToken=[your token] public async Task <StationBoard> Get([FromUri] StationBoardRequest request) { // Process CRS codes request.Crs = MakeCrsCode(request.Crs); request.FilterCrs = MakeCrsCode(request.FilterCrs); var client = new LDBServiceSoapClient(); // Avoiding Problems with the Using Statement in WCF clients // https://msdn.microsoft.com/en-us/library/aa355056.aspx try { var token = MakeAccessToken(request.AccessToken); if (Board.Departures == request.Board) { var departures = await client.GetDepartureBoardAsync(token, request.NumRows, request.Crs, request.FilterCrs, request.FilterType, 0, 0); return(departures.GetStationBoardResult); } if (Board.Arrivals == request.Board) { var arrivals = await client.GetArrivalBoardAsync(token, request.NumRows, request.Crs, request.FilterCrs, request.FilterType, 0, 0); return(arrivals.GetStationBoardResult); } // Default all (departures and arrivals board) var board = await client.GetArrivalDepartureBoardAsync(token, request.NumRows, request.Crs, request.FilterCrs, request.FilterType, 0, 0); return(board.GetStationBoardResult); } catch (CommunicationException) { client.Abort(); } catch (TimeoutException) { client.Abort(); } catch (Exception) { client.Abort(); throw; } finally { client.Close(); } return(new StationBoard()); }