private EstadoClima GetClimaFromYahoo(string entidadfederativa)
        {
            StringBuilder theWebAddress = new StringBuilder();

            theWebAddress.Append("https://query.yahooapis.com/v1/public/yql?");
            theWebAddress.Append("q=" +
                                 System.Web.HttpUtility.UrlEncode(
                                     "select * from weather.forecast where woeid in (select woeid from geo.places(1)" +
                                     " where text=\"" + entidadfederativa + "\") and u=\"c\""));//cambia la ciudad solamente

            theWebAddress.Append("&format=xml");
            theWebAddress.Append("&env=store://datatables.org/alltableswithkeys");

            string result = "";

            using (WebClient wc = new WebClient())
            {
                result = wc.DownloadString(theWebAddress.ToString());
            }
            XmlDocument documento = new XmlDocument();

            documento.LoadXml(result);
            XmlNodeList clima       = documento.GetElementsByTagName("yweather:forecast");
            var         viento      = documento.GetElementsByTagName("yweather:wind");
            var         estadoClima = new EstadoClima()
            {
                IdClima           = Convert.ToInt32(((XmlElement)clima[0]).GetAttribute("code")),
                Fecha             = Convert.ToDateTime(((XmlElement)clima[0]).GetAttribute("date")),
                TemperaturaMaxima = Convert.ToInt32(((XmlElement)clima[0]).GetAttribute("high")),
                TemperaturaMinima = Convert.ToInt32(((XmlElement)clima[0]).GetAttribute("low")),
                VelocidadViento   = Convert.ToDouble(((XmlElement)viento[0]).GetAttribute("speed"))
            };

            return(estadoClima);
        }
示例#2
0
        public EstadoClima InsertarEstadoClima(EstadoClima item)
        {
            List <SqlParameterItem> parametros = new List <SqlParameterItem>();

            parametros.Add(new SqlParameterItem("@pIdClima", SqlDbType.Int, item.IdClima));
            parametros.Add(new SqlParameterItem("@pTemperaturaMaxima", SqlDbType.Float, item.TemperaturaMaxima));
            parametros.Add(new SqlParameterItem("@pTemperaturaMinima", SqlDbType.Float, item.TemperaturaMinima));
            parametros.Add(new SqlParameterItem("@pVelocidadViento", SqlDbType.Float, item.VelocidadViento));
            parametros.Add(new SqlParameterItem("@pIdEntidadFederativaVW", SqlDbType.Float, item.IdEntidadFederativa));
            parametros.Add(new SqlParameterItem("@pID", SqlDbType.Int, 0, ParameterDirection.Output));
            InicializarConexion(TipoBaseDatos.MainSoft);
            helper.ExecuteNonQuery("[usp_EstadoClima_Inserta]", parametros);
            item.IdEstadoClima = Convert.ToInt16(helper.GetParameterOutput("@pID"));
            return(item);
        }
 public EstadoClima GetEstadoClima(EstadoClima item)
 {
     //verifica si existe el clima por la mañana o tarde depende la hora actual
     //si existe envialo, sino pidelo de yahoo
     using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required))
     {
         //el único dato necesario es el identidadFederativa
         item = iEstadoClimaRepositorio.GetEstadoClimaActual(item);
         if (item.IdEstadoClima == 0)
         {
             item.EntidadFederativa = GetNameEntidadFederativaYahoo(item.IdEntidadFederativa);
             item = GetClimaFromYahoo(item.EntidadFederativa);
             iEstadoClimaRepositorio.InsertarEstadoClima(item);
         }
         transaction.Complete();
     }
     // e insertarlo en la base de datos
     throw new NotImplementedException();
 }
示例#4
0
        public EstadoClima GetEstadoClimaActual(EstadoClima item)
        {
            InicializarConexion(TipoBaseDatos.MainSoft);
            var reader = helper.ExecuteReader("[usp_EstadoClima_DameEstadoClima]");

            //float x;
            while (reader.Read())
            {
                item.IdEstadoClima     = reader.GetInt32(reader.GetOrdinal("IdEstadoClima"));
                item.Clima             = reader.GetString(reader.GetOrdinal("Clima"));
                item.TemperaturaMinima = reader.GetDouble(reader.GetOrdinal("TemperaturaMinima"));
                item.TemperaturaMaxima = reader.GetDouble(reader.GetOrdinal("TemperaturaMaxima"));
                item.Fecha             = reader.GetDateTime(reader.GetOrdinal("TimeStamp"));
            }

            //var x = reader.GetDateTime(reader.GetOrdinal("FechaCambio"));
            reader.Close();
            return(item);
            //throw new NotImplementedException();
        }