Exemple #1
0
 //Esta clase se Mapeara con el ORM Dapper.-
 public DetalleOrden()
 {
     producto = new producto();
 }
        //Si el objeto “producto” se desea modificar este actualizara en la base de datos cuando este ya este modificado, no se modificara el ID del producto solo sus otros campos
        public static int Actualizar(producto prod)
        {
            int    numMsj      = 0;
            String msjExepcion = "ManejadorProductos.Actualizar()$Problemas al conectar en la DB.";
            int    respuesta   = 0;

            try
            {
                using (IDbConnection db = new MySqlConnection(DbConnection.Cadena()))
                {
                    if (db.State == ConnectionState.Closed)
                    {
                        db.Open();
                    }

                    if (prod.idProducto > 0 && (!prod.nombre.Equals("")) && prod.precio > 0 && prod.categoria.idCategoria > 0 && (prod.area == 'c' || prod.area == 'b'))
                    {
                        // verifica si el idCategoria a ingresar exista en la tabla categoria
                        var query      = "SELECT COUNT(*) FROM categoria WHERE idCategoria=@p2;";
                        var respuesta1 = db.Query <int>(query, new { p2 = prod.categoria.idCategoria }).SingleOrDefault();

                        if (respuesta1 == 1)
                        {
                            query     = "UPDATE producto SET nombre=@nombr, precio=@preci, idCategoria=@idCategori, area=@are WHERE idProducto= @idProduct;";
                            respuesta = db.Execute(query, param: new { idProduct = prod.idProducto, nombr = prod.nombre, preci = prod.precio, idCategori = prod.categoria.idCategoria, are = prod.area });
                            if (respuesta == 0)
                            {
                                numMsj = 3; //"ManejadorProductos.Actualizar()$No Existe registro de id=" + prod.idProducto
                                throw new ErrorAplicationException();
                            }
                        }
                        else
                        {
                            numMsj = 2;//"ManejadorProductos.Actualizar()$No se puede realizar la operación de Actualizar, la categoria ingresada no existe"
                            throw new ErrorAplicationException();
                        }
                    }
                    else
                    {
                        numMsj = 1; //"ManejadorProductos.Actualizar()$Campo o campos invalidos"
                        throw new ErrorAplicationException();
                    }
                }

                return(respuesta);
            }
            catch
            {
                switch (numMsj)
                {
                case 1:
                    msjExepcion = "ManejadorProductos.Actualizar()$Campo o campos invalidos.";
                    break;

                case 2:
                    msjExepcion = "ManejadorProductos.Actualizar()$No se puede realizar la operación de Actualizar, la categoria ingresada no existe.";
                    break;

                case 3:
                    msjExepcion = "ManejadorProductos.Actualizar()$No Existe registro de id=" + prod.idProducto;
                    break;
                }
                throw new ErrorAplicationException(msjExepcion);
            }
        }