示例#1
0
        public async Task <List <ForecastDisplay> > GetForecastAsync(CityModel city)
        {
            var forecast = await _forecastService.GetForecastByCoordsAsync(city.Latitude, city.Longitude).ConfigureAwait(false);

            var forecastedResults = forecast.GetHighestTimeSeries();
            var result            = new List <ForecastDisplay>();

            foreach (var forecastedResult in forecastedResults)
            {
                var forecastDisplay = new ForecastDisplay
                {
                    AirPressure   = forecastedResult.Msl.ToString(),
                    Temperature   = forecastedResult.T.ToString(),
                    WindSpeed     = forecastedResult.Ws.ToString(),
                    WindDirection = forecastedResult.Wd.ToString(),
                    Date          = forecastedResult.ValidTime.Date.ToString()
                };
                if (forecastedResult.ValidTime.Date == DateTime.Today)
                {
                    forecastDisplay.DayName = "Today";
                }
                else if (forecastedResult.ValidTime.Date == DateTime.Today.AddDays(1))
                {
                    forecastDisplay.DayName = "Tomorrow";
                }
                else
                {
                    forecastDisplay.DayName = forecastedResult.ValidTime.Date.DayOfWeek.ToString();
                }
                result.Add(forecastDisplay);
            }
            return(result);
        }
示例#2
0
        public async Task Test_GetForecastByCoordsAsync()
        {
            // Arrange
            var          service   = new WeatherForecastService();
            const double latitude  = 59.334415;
            const double longitude = 18.110103;

            // Act
            var forecast = await service.GetForecastByCoordsAsync(latitude, longitude);


            // Assert
            Assert.IsNotNull(forecast);
        }