Ejemplo n.º 1
0
        public async Task <WeatherServiceResult> GetHistoryWeather(string location, DateTime date)
        {
            try
            {
                var searchDate  = date.ToString("yyyy-MM-dd");
                var client      = _clientFactory.CreateClient();
                var weatherData = await client.GetFromJsonAsync <Weather>($"{HisotryBaseUrl}q={location}&dt={searchDate}");

                var forecast = weatherData.forecast.forecastday.FirstOrDefault();
                var result   = new WeatherServiceResult
                {
                    Succeeded        = true,
                    TempC            = forecast.day.avgtemp_c,
                    TempF            = forecast.day.avgtemp_f,
                    WeatherCondition = forecast.day.condition.text,
                    Humidity         = forecast.day.avghumidity
                };
                return(result);
            }
            catch (Exception ex)
            {
                return(new WeatherServiceResult {
                    Failed = true, ErrorMessage = ex.Message
                });
            }
        }
Ejemplo n.º 2
0
 public WeatherManagerFake()
 {
     _weatherResult = new WeatherServiceResult
     {
         Succeeded        = true,
         TempC            = 30,
         TempF            = 70,
         WeatherCondition = "clear",
         Humidity         = 60
     };
 }
Ejemplo n.º 3
0
        public async Task <WeatherServiceResult> GetCurrentOrForecast(string location, DateTime date)
        {
            try
            {
                var currentDate = DateTime.Today;
                if (date > currentDate.AddDays(2))
                {
                    return(new WeatherServiceResult {
                        Failed = true, ErrorMessage = "Weather Service is only  avaible for the next two days"
                    });
                }
                int dateToTake;
                if (date == currentDate)
                {
                    dateToTake = 0;
                }
                else if (date == currentDate.AddDays(1))
                {
                    dateToTake = 1;
                }
                else
                {
                    dateToTake = 2;
                }
                var client      = _clientFactory.CreateClient();
                var weatherData = await client.GetFromJsonAsync <Weather>($"{ForecastBaseUrl}q={location}&days=3");

                var forecast = weatherData.forecast.forecastday.Skip(dateToTake).Take(1).FirstOrDefault();
                var result   = new WeatherServiceResult
                {
                    Succeeded        = true,
                    TempC            = forecast.day.avgtemp_c,
                    TempF            = forecast.day.avgtemp_f,
                    WeatherCondition = forecast.day.condition.text,
                    Humidity         = forecast.day.avghumidity
                };
                return(result);
            }
            catch (Exception ex)
            {
                return(new WeatherServiceResult {
                    Failed = true, ErrorMessage = ex.Message
                });
            }
        }