public ThreeDayValuesDomainModel MapToThreeDayValuesDomainModel(OpenWeatherOneCallApiDataModel model) { ThreeDayValuesDomainModel domainmodel = new ThreeDayValuesDomainModel(); domainmodel.ThreeDayValues = new List <ThreeDayDomainModel>(); for (int i = 0; i < 3; i++) { domainmodel.ThreeDayValues.Add(MapToThreeDayValueDomainModel(model.Daily[i])); } return(domainmodel); }
public List <string> GetThreeDayWeatherForecast(int zipcode, ITemperatureStrategy temperatureStrategy, DateTime date) { List <string> result = new List <string>(); var threeDayData = Task.Run(() => _weatherForecastProvider.GetWeatherForThreeDays(zipcode)); threeDayData.Wait(); ThreeDayValuesDomainModel model = threeDayData.Result; foreach (var day in model.ThreeDayValues) { TemperatureInfo MorningTemperatureInfo = temperatureStrategy.GetTemperatureFromKelvin(day.DailyMorningTemperature); double roundedMorningTemperature = Math.Round(MorningTemperatureInfo.Temperature); TemperatureInfo DayTemperatureInfo = temperatureStrategy.GetTemperatureFromKelvin(day.DailyDayTemperature); double roundedDayTemperature = Math.Round(DayTemperatureInfo.Temperature); TemperatureInfo EveningTemperatureInfo = temperatureStrategy.GetTemperatureFromKelvin(day.DailyEveningTemperature); double roundedEveningTemperature = Math.Round(EveningTemperatureInfo.Temperature); result.Add($"In {zipcode} hat es am {day.Time.ToString("d")} morgens {roundedMorningTemperature} {MorningTemperatureInfo.Display} und es ist {day.WeatherDescription}"); result.Add($"In {zipcode} hat es am {day.Time.ToString("d")} mittags {roundedDayTemperature} {DayTemperatureInfo.Display} und es ist {day.WeatherDescription}"); result.Add($"In {zipcode} hat es am {day.Time.ToString("d")} mittags {roundedEveningTemperature} {EveningTemperatureInfo.Display} und es ist {day.WeatherDescription}"); } return(result); }