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