Example #1
0
        // GET /{cidade}/previsao
        public HttpResponseMessage Get(String cidade)
        {
            int codMunicipio = ServicePrevisao.GetCodMunicipio(cidade);

            PrevisaoViewModel previsao = new PrevisaoViewModel();

            if (codMunicipio > 0)
            {
                previsao = ServicePrevisao.GetPrevisao(codMunicipio);
            }

            return(Request.CreateResponse(HttpStatusCode.OK, previsao));
        }
        public static PrevisaoViewModel GetPrevisao(int id)
        {
            string url = $"http://servicos.cptec.inpe.br/XML/cidade/{id}/previsao.xml";

            var request  = (HttpWebRequest)WebRequest.Create(url);
            var response = (HttpWebResponse)request.GetResponse();

            var stream = response.GetResponseStream();
            var reader = new StreamReader(stream);

            XmlSerializer xmlSerializer = new XmlSerializer(typeof(ResponseWebService));

            var responsePrev = (ResponseWebService)xmlSerializer.Deserialize(reader);

            Previsao tempDiaSeguinte = null;
            string   dateCurrent     = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");

            foreach (var item in responsePrev.Previsao)
            {
                if (item.Dia.Equals(dateCurrent))
                {
                    tempDiaSeguinte = item;
                }
            }

            var prev =
                new PrevisaoViewModel
            {
                Nome        = responsePrev.Nome,
                Uf          = responsePrev.Uf,
                Id          = id,
                Atualizacao = responsePrev.Atualizacao,
                Previsao    = tempDiaSeguinte,
            };

            return(prev);
        }
Example #3
0
        public ActionResult Cidade(int code)
        {
            HttpClient request     = new HttpClient();
            string     UrlPrevisao = @"http://servicos.cptec.inpe.br/XML/cidade/7dias/" + code + "/previsao.xml";

            PrevisaoViewModel previsao = new PrevisaoViewModel();
            XDocument         doc      = XDocument.Load(UrlPrevisao);



            Cidade c = new Cidade();

            c = doc.Descendants("cidade").Select(xml => new Cidade()
            {
                Nome        = xml.Element("nome").Value,
                Atualizacao = (DateTime.Parse(xml.Element("atualizacao").Value != "null" ? xml.Element("atualizacao").Value  :  "1900-01-01")),
                UF          = xml.Element("uf").Value
            }).Single();

            foreach (XElement x in doc.Descendants("previsao").ToList())
            {
                c.Previsoes.Add(new Previsao()
                {
                    Dia = DateTime.Parse((x.Element("dia").Value != "null" ? x.Element("dia").Value : "1903-01-02"))
                    ,
                    Maxima = int.Parse((x.Element("maxima").Value != "null" ? x.Element("maxima").Value :  "0")),
                    Minima = int.Parse((x.Element("minima").Value != "null" ? x.Element("minima").Value : "0")),
                    Iuv    = double.Parse((x.Element("iuv").Value != "null" ? x.Element("iuv").Value : "0.0")),
                    Tempo  = TempoService.get(x.Element("tempo").Value.ToString())
                }
                                );
            }

            previsao.Cidade = c;

            return(View(previsao));
        }