public static Result <FiveDaysForecastResult> GetWeatherForecast(JObject response) { var error = GetServerErrorFromResponse(response); if (!String.IsNullOrEmpty(error)) { return(new Result <FiveDaysForecastResult>(null, false, error)); } var weatherForecasts = new List <FiveDaysForecastResult>(); var responseItems = JArray.Parse(response["list"].ToString()); foreach (var item in responseItems) { var weatherForecast = new FiveDaysForecastResult(); if (response["city"] != null) { weatherForecast.City = Encoding.UTF8.GetString(Encoding.Default.GetBytes(Convert.ToString(response["city"]["name"]))); weatherForecast.Country = Encoding.UTF8.GetString(Encoding.Default.GetBytes(Convert.ToString(response["city"]["country"]))); weatherForecast.CityId = Convert.ToInt32(response["city"]["id"]); } if (item["weather"] != null) { weatherForecast.Title = Encoding.UTF8.GetString(Encoding.Default.GetBytes(Convert.ToString(item["weather"][0]["main"]))); weatherForecast.Description = Encoding.UTF8.GetString(Encoding.Default.GetBytes(Convert.ToString(item["weather"][0]["description"]))); weatherForecast.Icon = Encoding.UTF8.GetString(Encoding.Default.GetBytes(Convert.ToString(item["weather"][0]["icon"]))); } if (item["main"] != null) { weatherForecast.Temp = Convert.ToDouble(item["main"]["temp"]); weatherForecast.TempMax = Convert.ToDouble(item["main"]["temp_max"]); weatherForecast.TempMin = Convert.ToDouble(item["main"]["temp_min"]); weatherForecast.Humidity = Convert.ToDouble(item["main"]["humidity"]); } if (item["wind"] != null) { weatherForecast.WindSpeed = Convert.ToDouble(item["wind"]["speed"]); } if (item["clouds"] != null) { weatherForecast.Clouds = Convert.ToDouble(item["clouds"]["all"]); } weatherForecast.Date = Convert.ToDateTime(item["dt_txt"]); weatherForecast.DateUnixFormat = Convert.ToInt32(item["dt"]); weatherForecasts.Add(weatherForecast); } return(new Result <FiveDaysForecastResult>(weatherForecasts, true, TimeHelper.MessageSuccess)); }
public static string GetWeather() { ClientSettings.SetApiKey("bd5e378503939ddaee76f12ad7a97608"); // 865190f17e5a219e99d7ce1336df43ba -- Our own var result = CurrentWeather.GetByCityName("Toronto", "Canada", "en", "metric"); var result2 = FiveDaysForecast.GetByCityName("Toronto", "Canada", "en", "metric"); // Formation if (result.Success) { // Five day average double average = Math.Round(result2.Items.Average(item => item.Temp), 2, MidpointRounding.AwayFromZero); // Check rain in tomorrow FiveDaysForecastResult temp = result2.Items.Take(7).First(item => item.Description.Contains("rain")); string rainForecast = (temp != null) ? "Tomorrow will have rain, remember to bring an umbrella." : ""; // Generate output string string resultString = string.Format("Current weather in {0}, is {1}; Windspeed {2} meter per second, Temperature {3} degrees.\n Average temperature in next fives days are: {4} degrees. {5}", result.Item.City, result.Item.Description, result.Item.WindSpeed, result.Item.Temp, average, rainForecast); return(resultString); } return(null); }