//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; } }