Example #1
0
        /// <summary>
        /// Metodo de extension, su funcion es modificar un articulo de la base
        /// de datos. Para ello los datos del articulo que utiliza esta extension
        /// y una palabra con el nombre del articulo en la DB a modificar.
        /// Tambien se encarga de verificar si el articulo es radio o tv, para reemplazar
        /// los datos correspondientes
        /// </summary>
        /// <param name="articulo">el articulo con datos a modificar</param>
        /// <param name="auxNombre">el nombre del articulo en la BD</param>
        /// <returns>True si se pudieron reemplazar los datos, false caso contrario</returns>
        public static bool ModificarArticuloEnBD(this Articulo articulo, string auxNombre)
        {
            bool ret = false;

            string auxVacio = "-1";

            SqlConnection conexionSql = new SqlConnection(@"Server = localhost\SQLEXPRESS; Database = Negocio; Trusted_Connection=True;");

            try
            {
                SqlCommand commandSql = new SqlCommand();

                commandSql.Connection  = conexionSql;
                commandSql.CommandType = CommandType.Text;

                commandSql.CommandText = "UPDATE Articulos SET nombre = @nombre, marca = @marca, idCliente = @idCliente," +
                                         "costo = @costo, estado = @estado, peso= @peso, antiguedad= @antiguedad where nombre = @auxNombre";

                //parametro que sirve para encontrar el articulo correcto de la BD
                commandSql.Parameters.Add(new SqlParameter("@auxNombre", auxNombre));

                if (articulo is Radio)
                {
                    Radio auxRadio = (Radio)articulo;
                    commandSql.Parameters.Add(new SqlParameter("@nombre", auxRadio.NombreArticulo));
                    commandSql.Parameters.Add(new SqlParameter("@marca", auxRadio.Marca));
                    commandSql.Parameters.Add(new SqlParameter("@costo", auxRadio.Costo));
                    commandSql.Parameters.Add(new SqlParameter("@estado", auxRadio.EstadoArticulo.ToString()));
                    commandSql.Parameters.Add(new SqlParameter("@idCliente", auxRadio.IdClienteComprador));
                    commandSql.Parameters.Add(new SqlParameter("@peso", auxVacio));
                    commandSql.Parameters.Add(new SqlParameter("@antiguedad", auxRadio.AniosDeAntiguedad));
                }
                else
                {
                    TV auxTV = (TV)articulo;
                    commandSql.Parameters.Add(new SqlParameter("@nombre", auxTV.NombreArticulo));
                    commandSql.Parameters.Add(new SqlParameter("@marca", auxTV.Marca));
                    commandSql.Parameters.Add(new SqlParameter("@costo", auxTV.Costo));
                    commandSql.Parameters.Add(new SqlParameter("@estado", auxTV.EstadoArticulo.ToString()));
                    commandSql.Parameters.Add(new SqlParameter("@idCliente", auxTV.IdClienteComprador));
                    commandSql.Parameters.Add(new SqlParameter("@peso", auxTV.Peso));
                    commandSql.Parameters.Add(new SqlParameter("@antiguedad", auxVacio));
                }

                if (conexionSql.State != ConnectionState.Open)
                {
                    conexionSql.Open();
                }

                // si no se modifica ningun articulo, lanzo una excepcion
                if (commandSql.ExecuteNonQuery() == 0)
                {
                    throw new ConexionDBException();
                }

                ret = true;
            }
            catch (Exception ex)
            {
                throw new ConexionDBException("Ocurrio un error al tratar de modificar el articulo", ex);
            }
            finally
            {
                if (conexionSql.State == ConnectionState.Open)
                {
                    conexionSql.Close();
                }
            }

            return(ret);
        }
 public AvisoDestacado(int pIdAviso, List <string> pTelefono, DateTime pPublicacion, Categoria pCategoria, Articulo pArticulo)
     : base(pIdAviso, pTelefono, pPublicacion, pCategoria)
 {
     Articulo = pArticulo;
 }
 public AvisoDestacado(int pNumero, DateTime pFecha, Categoria pCategoria, List <string> pTelefonos, Articulo pArticulo)
     : base(pNumero, pFecha, pCategoria, pTelefonos)
 {
     Articulo = pArticulo;
 }