public static async Task <Dictionary <String, Price> > RequestPrices(IEnumerable <String> stationIds) { String requestString = ApiRequests.BuildRequest(PRICE_REQUEST, new Parameter("ids", ApiRequests.BuildIdsParameter(stationIds)), new Parameter("apikey", Secrets.API_KEY)); try { HttpWebRequest httpRequest = WebRequest.CreateHttp(requestString); WebResponse response = await httpRequest.GetResponseAsync(); PriceListResult result = null; using (StreamReader reader = new StreamReader(response.GetResponseStream())) using (JsonTextReader jsonReader = new JsonTextReader(reader)) { result = JsonSerializer.CreateDefault().Deserialize <PriceListResult>(jsonReader); } return(result.IsOk ? result.Prices.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.ToPrice()) : null); } catch (Exception ex) { // If anything went wrong (maybe better error handling later) return(null); } }
public static async Task <List <PriceInfo> > RequestGasStations(GlobalCoordinate location, double radius = DEFAULT_RADIUS) { String requestString = ApiRequests.BuildRequest(LIST_REQUEST, new Parameter("type", "all"), new Parameter("lat", location.Latitude.ToString()), new Parameter("lng", location.Longitude.ToString()), new Parameter("rad", radius.ToString()), new Parameter("apikey", Secrets.API_KEY)); try { HttpWebRequest httpRequest = WebRequest.CreateHttp(requestString); WebResponse response = await httpRequest.GetResponseAsync(); StationListResult result = null; using (StreamReader reader = new StreamReader(response.GetResponseStream())) using (JsonTextReader jsonReader = new JsonTextReader(reader)) { result = JsonSerializer.CreateDefault().Deserialize <StationListResult>(jsonReader); } return(result.IsOk ? result.ToPriceInfos() : null); } catch (Exception ex) { // If anything went wrong (maybe better error handling later) return(null); } }