Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
            }
        }