コード例 #1
0
        public void ApiDohvat()
        {
            List <Gradovi> gradovi = new List <Gradovi>();

            using (BazaVremProgEntities kontekst = new BazaVremProgEntities())
            {
                gradovi = kontekst.Gradovi.ToList();
            }
            int brojGradova = gradovi.Count();

            for (int i = 0; i < brojGradova; i++)
            {
                Gradovi trenutniGrad = new Gradovi();
                trenutniGrad = gradovi[i];
                string         grad       = trenutniGrad.imeGrad;
                string         apiKljuc   = "29162b051f109cc1be64040092ba2918";
                HttpWebRequest apiRequest =
                    WebRequest.Create("http://api.openweathermap.org/data/2.5/forecast?q=" +
                                      grad + ",hr&appid=" + apiKljuc + "&units=metric&lang=hr") as HttpWebRequest;

                string apiOdgovor = "";
                using (HttpWebResponse response = apiRequest.GetResponse() as HttpWebResponse)
                {
                    //HttpWebResponse response = apiRequest.GetResponse() as HttpWebResponse;
                    StreamReader citac = new StreamReader(response.GetResponseStream());
                    apiOdgovor = citac.ReadToEnd();
                }

                KorjenskiObjekt listaOdgovor  = JsonConvert.DeserializeObject <KorjenskiObjekt>(apiOdgovor);
                List <Prognoza> listaPrognoza = new List <Prognoza>();
                foreach (var clan in listaOdgovor.list)
                {
                    Prognoza zaDodati = new Prognoza();
                    zaDodati.datum       = DateTime.Parse(clan.dt_txt);
                    zaDodati.grad        = trenutniGrad.id;
                    zaDodati.temperatura = clan.main.temp;
                    zaDodati.vlaznost    = clan.main.humidity;
                    zaDodati.vrijeme     = clan.weather[0].description;
                    zaDodati.ikona       = clan.weather[0].icon;
                    if (clan.rain != null)
                    {
                        zaDodati.kisa = clan.rain.kolicinaKise;
                    }
                    else
                    {
                        zaDodati.kisa = 0;
                    }
                    if (clan.snow != null)
                    {
                        zaDodati.snijeg = clan.snow.kolicinaSnijega;
                    }
                    else
                    {
                        zaDodati.snijeg = 0;
                    }
                    if (clan.wind != null)
                    {
                        zaDodati.smjerVjetra  = clan.wind.deg;
                        zaDodati.brzinaVjetra = clan.wind.speed;
                    }
                    listaPrognoza.Add(zaDodati);
                }
                ProvjeraISpremanje(listaPrognoza);
                if (i % 56 == 0 && i != 0)
                {
                    Thread.Sleep(60000);
                }
            }
            return;
        }