示例#1
0
        private void HandleInspection(FileInfo file, Sensores sensor)
        {
            DateTime fecha = DateTime.Parse(sensor.last_date_saved);

            #region Lectura de las filas del archivo
            DataTable csv = null;
            try
            {
                controllerLog.debug("Leyendo: " + file.FullName);
                csv = FilesHandler.FileToTable(file.FullName, ',');
            }
            catch (Exception ex)
            {
                controllerLog.stack("No fue posible leer: " + file.FullName, this, ex);
            }

            #endregion
            if (csv != null)
            {
                if (csv.Rows.Count > 0)
                {
                    int  filas  = 0;
                    bool creado = true;
                    foreach (DataRow Fila in csv.Rows)
                    {
                        humedad        = Fila[0].ToString();
                        temperatura    = Fila[1].ToString();
                        fecha_medicion = Convert.ToDateTime(Fila[4].ToString());
                        if (fecha_medicion > fecha)
                        {
                            filas++;
                            creado = Mediciones.createMeasure(sensor.id_sensor, temperatura, humedad, fecha_medicion);
                            if (!creado)
                            {
                                controllerLog.warning("La Fila con fecha " + fecha_medicion + " para sensor " + sensor.nombre + " NO se agregó a la BD");
                            }
                        }
                        else
                        {
                            //controllerLog.warning(file.FullName+"| la fila con fecha " + fecha_medicion + " NO se agregará a la BD");
                        }
                    }
                    if (filas > 0)
                    {
                        controllerLog.success("Registros Agregados: " + filas);
                    }
                    else
                    {
                        controllerLog.success("No se han registrado Nuevas Mediciones");
                    }

                    //Actualizo la fecha de la última lectura de las mediciones
                    controllerLog.info("---------------------------------------------");
                    controllerLog.info("Actualizando Ping de Sensor " + sensor.nombre);
                    Sensores.UpdatePing(sensor.nombre, fecha_medicion);
                    controllerLog.info("Ping Actualizado.");
                    controllerLog.info("---------------------------------------------");
                }
            }
        }
示例#2
0
        public static List <Mediciones> ListadoMediciones()
        {
            List <Mediciones> resultado = new List <Mediciones>();

            string CadenaBD = System.Configuration.ConfigurationManager.AppSettings["CadenaBD"].ToString();

            SqlConnection conexion = new SqlConnection(CadenaBD);

            try
            {
                SqlCommand cmd      = new SqlCommand();
                string     consulta = "SELECT * FROM Mediciones";
                cmd.Parameters.Clear();

                cmd.CommandType = System.Data.CommandType.Text;
                cmd.CommandText = consulta;

                conexion.Open();
                cmd.Connection = conexion;

                SqlDataReader dr = cmd.ExecuteReader();
                if (dr != null)
                {
                    while (dr.Read())
                    {
                        // obtengo valores
                        Mediciones m = new Mediciones();
                        m.Id          = int.Parse(dr["Id"].ToString()); // nombre de columnas en "" de la BD talcual
                        m.dia         = int.Parse(dr["Dia"].ToString());
                        m.idEstacion  = int.Parse(dr["IdEstacion"].ToString());
                        m.temperatura = float.Parse(dr["Temperatura"].ToString());
                        m.humedad     = float.Parse(dr["Humedad"].ToString());


                        resultado.Add(m); // agregamos los objetos a la lista
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conexion.Close();
            }
            return(resultado);
        }
 public ActionResult AltaMedicion(Mediciones model)
 {
     if (ModelState.IsValid)
     {
         bool resultado = AD_Alta.InsertarNuevaMedicion(model);
         if (resultado)
         {
             return(RedirectToAction("ListadoMediciones", "Mediciones"));
         }
         else
         {
             return(View(model));
         }
     }
     else
     {
         return(View(model));
     }
 }
示例#4
0
        public static bool InsertarNuevaMedicion(Mediciones medicion)
        {
            bool resultado = false;

            string CadenaBD = System.Configuration.ConfigurationManager.AppSettings["CadenaBD"].ToString();

            SqlConnection conexion = new SqlConnection(CadenaBD);

            try
            {
                SqlCommand cmd      = new SqlCommand();
                string     consulta = "INSERT INTO Mediciones VALUES(@dia, @idEstacion, @temperatura, @humedad)";
                cmd.Parameters.Clear();

                // agregamos parametros
                cmd.Parameters.AddWithValue("@dia", medicion.dia);
                cmd.Parameters.AddWithValue("@idEstacion", medicion.idEstacion);
                cmd.Parameters.AddWithValue("@temperatura", medicion.temperatura);
                cmd.Parameters.AddWithValue("@humedad", medicion.humedad);


                cmd.CommandType = System.Data.CommandType.Text;
                cmd.CommandText = consulta;

                conexion.Open();
                cmd.Connection = conexion;
                cmd.ExecuteNonQuery();
                resultado = true;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conexion.Close();
            }
            return(resultado);
        }