//Método que obtiene un determinado producto por su id
        public static ModeloProducto ObtenerProducto(double idProducto)
        {
            try
            {
                ModeloProducto producto = null;
                NpgsqlCommand cmd = new NpgsqlCommand("Select * from producto where idproducto=@idproducto", Conexion.conexion);
                cmd.Parameters.Add("idproducto", idProducto);
                Conexion.abrirConexion();
                NpgsqlDataReader reader = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    reader.Read();
                    producto = new ModeloProducto();
                    producto.cantidad = float.Parse(reader["cantidad"].ToString());
                    producto.detalle = reader["detalle"].ToString();
                    producto.fechaOferta = DateTime.Parse(reader["fechaoferta"].ToString());
                    producto.fechaVencimientoOferta = DateTime.Parse(reader["fechavencimientooferta"].ToString());
                    producto.idProducto = double.Parse(reader["idproducto"].ToString());
                    producto.nombre = reader["nombre"].ToString();
                    producto.unidad = reader["unidad"].ToString();
                    producto.Usuario = BaseDatosUsuario.ObtenerUsuario(reader["nombreusuariodueno"].ToString());
                    producto.evaluado = (bool)reader["evaluado"];

                }
                return producto;
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }
        //Método que devuelve aquellos productos que contengan el nombre recibido y que aún esten abiertos a recibir ofertas
        public static List<ModeloProducto> ObtenerProductosConElNombre(string nombre)
        {
            try
            {
                List<ModeloProducto> productos = new List<ModeloProducto>();
                NpgsqlCommand cmd = new NpgsqlCommand("Select * from producto where fechavencimientooferta>=@date and evaluado='false' and nombre like '%"+nombre+"%'", Conexion.conexion);
                cmd.Parameters.Add("date",DateTime.Now.Date);
                Conexion.abrirConexion();
                NpgsqlDataReader reader = cmd.ExecuteReader();

                if (reader.HasRows)
                {
                    productos = new List<ModeloProducto>();
                    while (reader.Read())
                    {
                        ModeloProducto producto = new ModeloProducto();
                        producto.idProducto = double.Parse(reader["idproducto"].ToString());
                        producto.cantidad = float.Parse(reader["cantidad"].ToString());
                        producto.detalle = reader["detalle"].ToString();
                        producto.fechaOferta = DateTime.Parse(reader["fechaoferta"].ToString());
                        producto.fechaVencimientoOferta = DateTime.Parse(reader["fechavencimientooferta"].ToString());
                        producto.nombre = reader["nombre"].ToString();
                        producto.Usuario = BaseDatosUsuario.ObtenerUsuario(reader["nombreusuariodueno"].ToString());
                        producto.unidad = reader["unidad"].ToString();
                        producto.evaluado = (bool)reader["evaluado"];

                        productos.Add(producto);
                    }
                }
                Conexion.cerrarConexion();
                return productos;
            }
            catch (Exception)
            {

                throw new Exception("Hubo un error con la base de datos, intente de nuevo más tarde");
            }
        }
        //Retorna todos aquellos productos que no contengan un dueño aún
        public static List<ModeloProducto> ProductosNoEvaluados()
        {
            try
            {
                List<ModeloProducto> productos = null;
                NpgsqlCommand cmd = new NpgsqlCommand("Select * from producto where evaluado='false'", Conexion.conexion);
                Conexion.abrirConexion();
                NpgsqlDataReader reader = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    productos = new List<ModeloProducto>();
                    while (reader.Read())
                    {
                        ModeloProducto producto = new ModeloProducto();
                        producto.cantidad = float.Parse(reader["cantidad"].ToString());
                        producto.detalle = reader["detalle"].ToString();
                        producto.evaluado = (bool)reader["evaluado"];
                        producto.fechaOferta = DateTime.Parse(reader["fechaoferta"].ToString());
                        producto.fechaVencimientoOferta = DateTime.Parse(reader["fechavencimientooferta"].ToString());
                        producto.idProducto = Double.Parse(reader["idproducto"].ToString());
                        producto.unidad = reader["unidad"].ToString();
                        producto.nombre = reader["nombre"].ToString();
                        producto.Usuario = BaseDatosUsuario.ObtenerUsuario(reader["nombreusuariodueno"].ToString());

                        productos.Add(producto);
                    }
                }
                Conexion.cerrarConexion();
                return productos;
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }