/// <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.Ruido> LeerFichero(LogEntidad oDownloadFile, List<Entidades.RuidoEstaciones> listRuidoEstaciones) { try { Entidades.Ruido oRuido = new Entidades.Ruido(); List<Entidades.Ruido> listRuido = new List<Entidades.Ruido>(); List<Entidades.Ruido> listRuidoAuxiliar = new List<Entidades.Ruido>(); Entidades.RuidoEstaciones oRuidoEstaciones = new Entidades.RuidoEstaciones(); 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["UrlLocalRuido"].ToString() + (oDownloadFile.fichero)); linea = file.ReadLine(); numLinea++; do { lectura = new string[11]; lectura = linea.ToString().Split(separador); oRuido = new Entidades.Ruido(); oRuido.CodEstacion = int.Parse(lectura[0].Trim()); oRuido.Anio = int.Parse(lectura[1].Trim()); oRuido.Mes = int.Parse(lectura[2].Trim()); oRuido.Dia = int.Parse(lectura[3].Trim()); oRuido.Periodo = lectura[4].Trim(); oRuido.LAEQ = decimal.Parse(lectura[5].Trim().Replace(".",",")); oRuido.LAS01 = decimal.Parse(lectura[6].Trim().Replace(".", ",")); oRuido.LAS10 = decimal.Parse(lectura[7].Trim().Replace(".", ",")); oRuido.LAS50 = decimal.Parse(lectura[8].Trim().Replace(".", ",")); oRuido.LAS90 = decimal.Parse(lectura[9].Trim().Replace(".", ",")); oRuido.LAS99 = decimal.Parse(lectura[10].Trim().Replace(".", ",")); oRuidoEstaciones = listRuidoEstaciones.Find(x => int.Parse(x.CodEstacion.ToString()) == int.Parse(lectura[0].Trim())); if (oRuidoEstaciones != null) { oRuido.Nombre = oRuidoEstaciones.Nombre; oRuido.Longitud = oRuidoEstaciones.Longitud; oRuido.Latitud = oRuidoEstaciones.Latitud; } listRuido.Add(oRuido); } while ((linea = file.ReadLine()) != null); file.Close(); listRuidoAuxiliar = UnificarLecturasEstaciones(listRuido); //Retornamos la lista de los elementos leídos del fichero. return listRuidoAuxiliar; } catch (Exception ex) { throw ex; } }
private static List<Entidades.Ruido> UnificarLecturasEstaciones(List<Entidades.Ruido> listRuido) { Entidades.Ruido oAuxRuido = new Entidades.Ruido(); List<Entidades.Ruido> listAuxRuido = new List<Entidades.Ruido>(); List<Entidades.RuidoPeriodo> oPeriodo = Negocio.RuidoPeriodo.ObtenerRuidoPeriodo(); foreach (Entidades.Ruido oRuido in listRuido) { oAuxRuido = listAuxRuido.Find(x => x.CodEstacion == oRuido.CodEstacion); if (oAuxRuido == null) { oAuxRuido = new Entidades.Ruido(); Entidades.RuidoMedida medida = new Entidades.RuidoMedida(); medida.LAEQ = oRuido.LAEQ; medida.LAS01 = oRuido.LAS01; medida.LAS10 = oRuido.LAS10; medida.LAS50 = oRuido.LAS50; medida.LAS90 = oRuido.LAS90; medida.LAS99 = oRuido.LAS99; medida.Periodo = oRuido.Periodo; medida.DescripcionPeriodo = oPeriodo.Find(x => x.IdPeriodo == oRuido.Periodo).DescripcionPeriodo; oAuxRuido.Medida.Add(medida); oAuxRuido.LAEQ = 0; oAuxRuido.LAS01 = 0; oAuxRuido.LAS10 = 0; oAuxRuido.LAS50 = 0; oAuxRuido.LAS90 = 0; oAuxRuido.LAS99 = 0; oAuxRuido.CodEstacion = oRuido.CodEstacion; oAuxRuido.Nombre = oRuido.Nombre; oAuxRuido.Anio = oRuido.Anio; oAuxRuido.Mes = oRuido.Mes; oAuxRuido.Dia = oRuido.Dia; oAuxRuido.Fecha =Convert.ToDateTime(oRuido.Dia + "/" + oRuido.Mes + "/" + oRuido.Anio); oAuxRuido.Longitud = oRuido.Longitud; oAuxRuido.Latitud = oRuido.Latitud; listAuxRuido.Add(oAuxRuido); } else { Entidades.RuidoMedida medida = new Entidades.RuidoMedida(); medida.LAEQ = oRuido.LAEQ; medida.LAS01 = oRuido.LAS01; medida.LAS10 = oRuido.LAS10; medida.LAS50 = oRuido.LAS50; medida.LAS90 = oRuido.LAS90; medida.LAS99 = oRuido.LAS99; medida.Periodo = oRuido.Periodo; medida.DescripcionPeriodo = oPeriodo.Find(x => x.IdPeriodo == oRuido.Periodo).DescripcionPeriodo; oAuxRuido.Medida.Add(medida); } } return listAuxRuido; }