/// <summary> /// Método que obtiene de la web el último fichero con los datos de aire colgado por el ayuntamiento de Madrid /// </summary> /// <returns></returns> public static List <Entidades.AireEstaciones> ObtenerAireEstaciones() { Entidades.AireEstaciones oAireEstaciones = new Entidades.AireEstaciones(); List <Entidades.AireEstaciones> listAireEstaciones = new List <Entidades.AireEstaciones>(); DataSet ds = Datos.AireEstaciones.ObtenerAireEstaciones(); if (ds != null) { foreach (DataRow dr in ds.Tables[0].Rows) { oAireEstaciones = new Entidades.AireEstaciones(); oAireEstaciones.CodEstacion01 = dr[1].ToString(); oAireEstaciones.CodEstacion02 = dr[2].ToString(); oAireEstaciones.CodEstacion03 = dr[3].ToString(); oAireEstaciones.CodTipoEstacion = dr[4].ToString(); oAireEstaciones.Nombre = dr[5].ToString(); oAireEstaciones.Direccion = dr[6].ToString(); oAireEstaciones.Longitud = Decimal.Parse(dr[7].ToString()); oAireEstaciones.Latitud = Decimal.Parse(dr[8].ToString()); listAireEstaciones.Add(oAireEstaciones); } } return(listAireEstaciones); }
/// <summary> /// Método para leer el fichero descargado de la web del ayuntamiento de Madrid. El método devuelve una lista de objetos de tipo AireEntidad. /// </summary> /// <param name="oDownloadFile"></param> /// <returns></returns> public static List <Entidades.Aire> LeerFichero(LogEntidad oDownloadFile, List <Entidades.AireEstaciones> listAireEstaciones) { try { List <Entidades.Aire> listAire = new List <Entidades.Aire>(); Entidades.Aire oAire = new Entidades.Aire(); Entidades.AireEstaciones oAireEstaciones = new Entidades.AireEstaciones(); string linea = string.Empty; int numLinea = 0; char separador = char.Parse(","); string[] lectura = new string[57]; System.IO.StreamReader file = new System.IO.StreamReader(ConfigurationManager.AppSettings["UrlLocalAire"].ToString() + (oDownloadFile.fichero)); linea = file.ReadLine(); numLinea++; do { lectura = new string[57]; lectura = linea.ToString().Split(separador); oAire = new Entidades.Aire(); if (lectura[2].Trim() != "099") { oAire.CodEstacion01 = lectura[0].Trim(); oAire.CodEstacion02 = lectura[1].Trim(); oAire.CodEstacion03 = lectura[2].Trim(); oAire.Magnitud = lectura[3].Trim(); oAire.Tecnica = lectura[4].Trim(); oAire.Periodo = lectura[5].Trim(); //Un 02 indica que son mediciones diarias oAire.Anio = int.Parse(lectura[6].Trim()); oAire.Mes = int.Parse(lectura[7].Trim()); oAire.Dia = int.Parse(lectura[8].Trim()); oAire.HoraValidez[0].Hora = decimal.Parse(lectura[9].Trim()); oAire.HoraValidez[0].Validez = lectura[10].Trim(); oAire.HoraValidez[1].Hora = decimal.Parse(lectura[11].Trim()); oAire.HoraValidez[1].Validez = lectura[12].Trim(); oAire.HoraValidez[2].Hora = decimal.Parse(lectura[13].Trim()); oAire.HoraValidez[2].Validez = lectura[14].Trim(); oAire.HoraValidez[3].Hora = decimal.Parse(lectura[15].Trim()); oAire.HoraValidez[3].Validez = lectura[16].Trim(); oAire.HoraValidez[4].Hora = decimal.Parse(lectura[17].Trim()); oAire.HoraValidez[4].Validez = lectura[18].Trim(); oAire.HoraValidez[5].Hora = decimal.Parse(lectura[19].Trim()); oAire.HoraValidez[5].Validez = lectura[20].Trim(); oAire.HoraValidez[6].Hora = decimal.Parse(lectura[21].Trim()); oAire.HoraValidez[6].Validez = lectura[22].Trim(); oAire.HoraValidez[7].Hora = decimal.Parse(lectura[23].Trim()); oAire.HoraValidez[7].Validez = lectura[24].Trim(); oAire.HoraValidez[8].Hora = decimal.Parse(lectura[25].Trim()); oAire.HoraValidez[8].Validez = lectura[26].Trim(); oAire.HoraValidez[9].Hora = decimal.Parse(lectura[27].Trim()); oAire.HoraValidez[9].Validez = lectura[28].Trim(); oAire.HoraValidez[10].Hora = decimal.Parse(lectura[29].Trim()); oAire.HoraValidez[10].Validez = lectura[30].Trim(); oAire.HoraValidez[11].Hora = decimal.Parse(lectura[31].Trim()); oAire.HoraValidez[11].Validez = lectura[32].Trim(); oAire.HoraValidez[12].Hora = decimal.Parse(lectura[33].Trim()); oAire.HoraValidez[12].Validez = lectura[33].Trim(); oAire.HoraValidez[13].Hora = decimal.Parse(lectura[35].Trim()); oAire.HoraValidez[13].Validez = lectura[36].Trim(); oAire.HoraValidez[14].Hora = decimal.Parse(lectura[37].Trim()); oAire.HoraValidez[14].Validez = lectura[38].Trim(); oAire.HoraValidez[15].Hora = decimal.Parse(lectura[39].Trim()); oAire.HoraValidez[15].Validez = lectura[40].Trim(); oAire.HoraValidez[16].Hora = decimal.Parse(lectura[41].Trim()); oAire.HoraValidez[16].Validez = lectura[41].Trim(); oAire.HoraValidez[17].Hora = decimal.Parse(lectura[43].Trim()); oAire.HoraValidez[17].Validez = lectura[44].Trim(); oAire.HoraValidez[18].Hora = decimal.Parse(lectura[45].Trim()); oAire.HoraValidez[18].Validez = lectura[46].Trim(); oAire.HoraValidez[19].Hora = decimal.Parse(lectura[47].Trim()); oAire.HoraValidez[19].Validez = lectura[48].Trim(); oAire.HoraValidez[20].Hora = decimal.Parse(lectura[49].Trim()); oAire.HoraValidez[20].Validez = lectura[50].Trim(); oAire.HoraValidez[21].Hora = decimal.Parse(lectura[51].Trim()); oAire.HoraValidez[21].Validez = lectura[52].Trim(); oAire.HoraValidez[22].Hora = decimal.Parse(lectura[53].Trim()); oAire.HoraValidez[22].Validez = lectura[54].Trim(); oAire.HoraValidez[23].Hora = decimal.Parse(lectura[55].Trim()); oAire.HoraValidez[23].Validez = lectura[56].Trim(); oAireEstaciones = listAireEstaciones.Find(x => int.Parse(x.CodEstacion01) == int.Parse(lectura[0].Trim()) && int.Parse(x.CodEstacion02) == int.Parse(lectura[1].Trim()) && int.Parse(x.CodEstacion03) == int.Parse(lectura[2].Trim())); if (oAireEstaciones != null) { oAire.NombreEstacion = oAireEstaciones.Nombre; oAire.Longitud = oAireEstaciones.Longitud; oAire.Latitud = oAireEstaciones.Latitud; } listAire.Add(oAire); } } while ((linea = file.ReadLine()) != null); file.Close(); //Retornamos la lista de los elementos leídos del fichero. return(listAire); } catch (Exception ex) { throw ex; } }