public IHttpActionResult GetDepaturesFromStop(int routeType, int stopId) { var departuresApi = new DeparturesApi(new PTVApi.Client.Configuration(new ApiClient("http://timetableapi.ptv.vic.gov.au", _devId, _apiKey))); var response = departuresApi.DeparturesGetForStop(routeType, stopId, maxResults: 5); List <StopDepartureDto> departuresResponse = new List <StopDepartureDto>(); var routesApi = new RoutesApi(new PTVApi.Client.Configuration(new ApiClient("http://timetableapi.ptv.vic.gov.au", _devId, _apiKey))); var directionsApi = new DirectionsApi(new PTVApi.Client.Configuration(new ApiClient("http://timetableapi.ptv.vic.gov.au", _devId, _apiKey))); Dictionary <int, V3Route> routesDetail = new Dictionary <int, V3Route>(); Dictionary <int, string> directionsName = new Dictionary <int, string>(); foreach (V3Departure departure in response.Departures) { var detailedDeparture = Mapper.Map <V3Departure, StopDepartureDto>(departure); //Add Route Details to departure var routeId = departure.RouteId.Value; V3Route route; if (!routesDetail.Keys.Contains(routeId)) { route = routesApi.RoutesRouteFromId(routeId).Route; routesDetail.Add(routeId, route); } else { route = routesDetail[routeId]; } detailedDeparture.RouteName = route.RouteName; detailedDeparture.RouteNumber = route.RouteNumber; detailedDeparture.RouteType = route.RouteType.Value; //Add Directions Details to departure var directionId = departure.DirectionId.Value; String directionName; if (!directionsName.Keys.Contains(directionId)) { var directionResponse = directionsApi.DirectionsForRoute(routeId); directionName = directionResponse.Directions.Find(d => d.DirectionId == directionId).DirectionName; directionsName.Add(directionId, directionName); } else { directionName = directionsName[directionId]; } detailedDeparture.DirectionName = directionName; departuresResponse.Add(detailedDeparture); } return(Ok(departuresResponse)); }
public void Init() { instance = new DirectionsApi(); }