예제 #1
0
        public async void TestAsync()
        {
            var request  = new ForecastIORequest(key, 43.4499376f, -79.7880999f, Unit.si);
            var response = await request.GetAsync();

            Console.WriteLine(string.Format("Async Response: {0}", response.currently.apparentTemperature));
        }
예제 #2
0
        public async Task <WeatherInfoResponse> GetAsyn(float latF, float longF)
        {
            string             apiKey = "28896f6afb4e54d741e4d57dbe5d2749";
            List <WeatherInfo> pastWeekWeatherInfo = new List <WeatherInfo>();

            try
            {
                for (int i = -7; i <= -1; i++)  //for the past 7 days
                {
                    var date     = DateTime.Today.AddDays(i);
                    var request  = new ForecastIORequest(apiKey, latF, longF, date, Unit.us);
                    var response = await request.GetAsync();

                    var weatherInfoDate = UnixTimeStampToDateTime(response.daily.data[0].time);
                    pastWeekWeatherInfo.Add(new WeatherInfo
                    {
                        Date    = weatherInfoDate.ToShortDateString(),
                        Summary = response.daily.data[0].summary,
                        DailyHighTemperature = response.daily.data[0].apparentTemperatureMax,
                        DailyLowTemperature  = response.daily.data[0].apparentTemperatureMin
                    });
                }

                WeatherInfoResponse wiResponse = new WeatherInfoResponse
                {
                    status  = "OK",
                    results = pastWeekWeatherInfo
                };

                return(wiResponse);
            }
            catch (Exception ex)
            {
                WeatherInfoResponse wiResponse = new WeatherInfoResponse
                {
                    status       = "Error",
                    errorMessage = ex.ToString()
                };

                return(wiResponse);
            }
        }
        public async Task <ForecastDto> GetForecast(double longitude, double latitude)
        {
            var request  = new ForecastIORequest(_settings.ApiKey, (float)latitude, (float)longitude, Unit.si);
            var response = await request.GetAsync();

            if (response?.currently != null)
            {
                return(new ForecastDto
                {
                    StatusCode = 200,
                    Humidity = response.currently.humidity,
                    Wind = response.currently.windSpeed,
                    Timezone = response.timezone,
                    Time = response.currently.time,
                    Summary = response.currently.summary,
                    Temperature = response.currently.temperature
                });
            }

            return(new ForecastDto {
                StatusCode = 404
            });
        }
예제 #4
0
        public static async Task <ForecastIOResponse> AsyncGet()
        {
            var request = new ForecastIORequest(key, 43.4499376f, -79.7880999f, Unit.si);

            return(await request.GetAsync());
        }