// 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); }
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)); }