public Dictionary <string, List <ChampRoute> > GetStation(String latitude, String longitude, String rayon) { string responseFromServer = _IApiRequest.Request(String.Format("https://data.metromobilite.fr/api/linesNear/json?y={0}&x={1}&dist={2}&details=true", latitude, longitude, rayon)); List <ChampApi> stations = JsonConvert.DeserializeObject <List <ChampApi> >(responseFromServer); Dictionary <string, List <ChampRoute> > listeStationUnique = new Dictionary <string, List <ChampRoute> >(); foreach (ChampApi station in stations) { if (!listeStationUnique.ContainsKey(station.Name)) { listeStationUnique.Add(station.Name, new List <ChampRoute>()); } foreach (var line in station.Lignes) { if (!listeStationUnique[station.Name].Any(_ => _.Id == line)) { ChampRoute route = GetRoute(line); listeStationUnique[station.Name].Add(route); } } } return(listeStationUnique); }
public void Request(IApiRequest request) { if (request.DidRequest) { throw new Exception("Attempted to request an API request under the Api when it has already been requested."); } // Attach authorization header. if (authentication.Value != null) { request.InnerRequest.SetHeader("Authorization", $"Bearer {authentication.Value.AccessToken}"); } var listener = new TaskListener <IWebRequest>(); ShowNotification(request, listener); request.Request(listener); }