//Cambia el estado de la oferta a vencida indicando que la fecha límite llegó o ya se tomo una decisión public static void CambiarOfertaAVencida(ModeloOferta oferta) { try { NpgsqlCommand cmd = new NpgsqlCommand("Update oferta set vencida='true' where idoferta=@idoferta",Conexion.conexion); cmd.Parameters.Add("idoferta",oferta.idOferta); Conexion.abrirConexion(); cmd.ExecuteNonQuery(); Conexion.cerrarConexion(); } catch (Exception ex) { throw ex; } }
//Método que permite ver sólo mis ofertas realizadas public static List<ModeloOferta> VerMisOfertas(string nombreUsuario) { try { List<ModeloOferta> ofertas = null; //Creación del comando NpgsqlCommand cmd = new NpgsqlCommand("Select * from oferta where nombreusuariosubasta = @nombreusuario",Conexion.conexion); //Se añade parámetros para evitar sql injection cmd.Parameters.Add("nombreusuario",nombreUsuario); Conexion.abrirConexion(); //Creación de lector de base de datos NpgsqlDataReader reader = cmd.ExecuteReader(); //Si el lector tiene tados if (reader.HasRows) { ofertas = new List<ModeloOferta>(); //Se lee todos los productos de uno en uno while (reader.Read()) { ModeloOferta oferta = new ModeloOferta(); oferta.cantidad = float.Parse(reader["cantidad"].ToString()); oferta.fecha = DateTime.Parse(reader["fecha"].ToString()); oferta.idOferta = double.Parse(reader["idoferta"].ToString()); oferta.precio = float.Parse(reader["precio"].ToString()); oferta.producto = BaseDatosProducto.ObtenerProducto(double.Parse(reader["idproducto"].ToString())); oferta.tipoMoneda = reader["tipomoneda"].ToString(); oferta.usuarioSubasta = BaseDatosUsuario.ObtenerUsuario(reader["nombreusuariosubasta"].ToString()); oferta.vencida = (bool)reader["vencida"]; //Se lo va guardando en una lista que será retornada posteriormente ofertas.Add(oferta); } } return ofertas; } catch (Exception) { throw new Exception("Hubo un error con la base de datos, intente de nuevo más tarde"); } }
//Permite ver las ofertas de un determinado producto. Ésto lo realiza un administrador. public static List<ModeloOferta> VerOfertasDelProducto(double idProducto) { try { List<ModeloOferta> ofertas = null; NpgsqlCommand cmd = new NpgsqlCommand("Select * from oferta where idproducto = @idproducto",Conexion.conexion); cmd.Parameters.Add("idproducto",idProducto); Conexion.abrirConexion(); NpgsqlDataReader reader = cmd.ExecuteReader(); if (reader.HasRows) { ofertas = new List<ModeloOferta>(); while (reader.Read()) { ModeloOferta oferta = new ModeloOferta(); oferta.cantidad = float.Parse(reader["cantidad"].ToString()); oferta.fecha = DateTime.Parse(reader["fecha"].ToString()); oferta.idOferta = double.Parse(reader["idoferta"].ToString()); oferta.precio = float.Parse(reader["precio"].ToString()); oferta.producto = BaseDatosProducto.ObtenerProducto(double.Parse(reader["idproducto"].ToString())); oferta.tipoMoneda = reader["tipomoneda"].ToString(); oferta.usuarioSubasta = BaseDatosUsuario.ObtenerUsuario(reader["nombreusuariosubasta"].ToString()); oferta.vencida = (bool)reader["vencida"]; ofertas.Add(oferta); } } return ofertas; } catch (Exception) { throw new Exception("Hubo un error con la base de datos, intente de nuevo más tarde"); } }