public int getAvailableBikes(string contract, string station, int delay) { JObject jsonObject = null; StationProperties p = tampon[contract][station]; if (checkUpdate(p, delay)) { int station_number = tampon[contract][station].StationNumber; WebRequest req = WebRequest.Create(@"https://api.jcdecaux.com/vls/v1/stations/" + station_number + @"?contract=" + contract + @"&apiKey=" + API_KEY); WebResponse response = req.GetResponse(); Console.WriteLine(((HttpWebResponse)response).StatusDescription); Stream dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); string responseFromServer = reader.ReadToEnd(); reader.Close(); response.Close(); jsonObject = JObject.Parse(responseFromServer); p.AviableBikes = (int)jsonObject["available_bikes"]; p.LastUpdate = DateTime.Now; } return(p.AviableBikes); }
private bool checkUpdate(StationProperties p, int delay) { if (p.AviableBikes == -1) { return(true); } if (p.LastUpdate == null) { return(true); } if (DateTime.Now.Subtract(p.LastUpdate.Value).TotalSeconds >= delay) { return(true); } return(false); }