Exemple #1
0
 private void ConvertAllToCelsius()
 {
     NowForecast.Main.temp = Convert.ToInt32(WeatherConvertor.FarengateToCelsius(NowForecast.Main.temp));
     foreach (DailyForecast d in Forecasts)
     {
         d.temp_max = Convert.ToInt32(WeatherConvertor.FarengateToCelsius(d.temp_max));
         d.temp_min = Convert.ToInt32(WeatherConvertor.FarengateToCelsius(d.temp_min));
         foreach (HourlyForecast h in d.Hourlies)
         {
             h.temp = Convert.ToInt32(WeatherConvertor.FarengateToCelsius(h.temp));
         }
     }
 }
Exemple #2
0
        public WeatherInfo GetData(string city)
        {
            string    resultApi;
            WebClient client = new WebClient();

            try
            {
                resultApi = client.DownloadString($"{webApiW}{city}&appid={token}");

                var result = JsonConvert.DeserializeObject <WeatherInfo>(resultApi);

                WeatherInfo root = result;

                #region Converting
                root.Main.temp   = Convert.ToInt32(WeatherConvertor.KelvinToCelsius(root.Main.temp));
                root.visibility /= 1000;
                root.FeelsLike   = Convert.ToInt32(WeatherConvertor.GetFeelsLike(root.Main.temp));
                root.DewPoint    = WeatherConvertor.GetDewPoint(root.Main.temp, root.Main.humidity);
                root.Wind.speed  = Convert.ToInt32(WeatherConvertor.MsToKh(root.Wind.speed));

                root.Sunrise  = UnixConvertor.ConvertUnixToLocalTime(root.Sys.sunrise).ToShortTimeString();
                root.Sunset   = UnixConvertor.ConvertUnixToLocalTime(root.Sys.sunset).ToShortTimeString();
                root.Moonrise = UnixConvertor.ConvertUnixToLocalTime(root.Sys.sunrise).AddMinutes(-35).ToShortTimeString();
                root.Moonset  = UnixConvertor.ConvertUnixToLocalTime(root.Sys.sunset).AddMinutes(39).ToShortTimeString();

                root.icon = "/Images/WeatherStatuss/" + root.Weather[0].icon + ".png";
                root.BackgoundImagePath = "/Images/BackgroundW/" + root.Weather[0].icon + ".png";

                root.descr = root.Weather[0].description.Substring(0, 1).ToUpper() + root.Weather[0].description.Remove(0, 1);

                #endregion

                return(root);
            }
            catch
            {
                throw;
            }
        }
Exemple #3
0
        public ObservableCollection <DailyForecast> GetForecasts(string city)
        {
            string    resultApi;
            WebClient client = new WebClient();

            try
            {
                resultApi = client.DownloadString($"{webApiF}{city}&appid={token}");

                ForecastsInfo result = JsonConvert.DeserializeObject <ForecastsInfo>(resultApi);

                ForecastsInfo root = result;

                ObservableCollection <DailyForecast> df = new ObservableCollection <DailyForecast>();

                string  aDaysUV = client.DownloadString($"{webApiUVI}{token}&lat={root.city.coord.lat.ToString().Replace(',', '.')}&lon={root.city.coord.lon.ToString().Replace(',', '.')}&cnt=5");
                dynamic uvJson  = JsonConvert.DeserializeObject(aDaysUV);

                IEnumerable <ForecastsInfo.list> lists;

                int i = 0; //UVIndexCNTr
                for (DateTime day = DateTime.Now; ; day = day.AddDays(1))
                {
                    if (day.Day <= 9)
                    {
                        lists = from l in root.List where l.dt_txt.Split('-').Last().Split(' ').First() == ("0" + day.Day.ToString()) select l;
                    }
                    else
                    {
                        lists = from l in root.List where l.dt_txt.Split('-').Last().Split(' ').First() == day.Day.ToString() select l;
                    }

                    if (lists.Count() != 0)
                    {
                        DailyForecast d = new DailyForecast
                        {
                            deg      = Convert.ToInt32(lists.First().wind.deg),
                            wind     = Convert.ToInt32(lists.First().wind.speed),
                            humidity = Convert.ToInt32(lists.First().main.humidity),
                            Day      = day.DayOfWeek.ToString() + " " + day.Day.ToString(),
                            descr    = lists.First().Weather[0].description.Substring(0, 1).ToUpper() + lists.First().Weather[0].description.Remove(0, 1),
                            icon     = "/Images/WeatherStatuss/" + lists.First().Weather[0].icon + ".png"
                        };

                        #region Get UVIndex
                        if (day.ToShortDateString() == DateTime.Now.ToShortDateString())
                        {
                            string  todayuv = client.DownloadString($"http://api.openweathermap.org/data/2.5/uvi?appid={token}&lat={root.city.coord.lat.ToString().Replace(',', '.')}&lon={root.city.coord.lon.ToString().Replace(',', '.')}");
                            dynamic uv1json = JsonConvert.DeserializeObject(todayuv);
                            d.uvindex = uvJson[0]["value"];
                        }
                        else
                        {
                            d.uvindex = uvJson[i]["value"];
                        }
                        i++;
                        #endregion

                        foreach (ForecastsInfo.list list in lists)
                        {
                            HourlyForecast h = new HourlyForecast
                            {
                                time     = list.dt_txt.Split(' ').Last(),
                                temp     = Convert.ToInt32(WeatherConvertor.KelvinToCelsius(list.main.temp)),
                                wind     = Convert.ToInt32(WeatherConvertor.MsToKh(list.wind.speed)),
                                deg      = Convert.ToInt32(list.wind.deg),
                                icon     = "/Images/WeatherStatuss/" + list.Weather[0].icon + ".png",
                                descr    = list.Weather[0].description.Substring(0, 1).ToUpper() + list.Weather[0].description.Remove(0, 1),
                                humidity = Convert.ToInt32(list.main.humidity)
                            };

                            d.Hourlies.Add(h);
                        }

                        #region Get min/max
                        d.temp_max = d.Hourlies.OrderBy(x => x.temp).Last().temp;
                        d.temp_min = d.Hourlies.OrderBy(x => x.temp).First().temp;
                        #endregion

                        df.Add(d);
                    }
                    else if (lists.Count() == 0)
                    {
                        break;
                    }
                }


                return(df);
            }
            catch { throw; }
        }