private bool ValidarDatos()
 {
     if (string.IsNullOrWhiteSpace(txtNombre.Text) ||
         string.IsNullOrWhiteSpace(txtDescripcion.Text) ||
         permisoActual.DevolverPerfil().Count == 0)
     {
         MessageBox.Show(ObtenerLeyenda("msgDatosIncompletos"), ObtenerLeyenda("msgDatosIncompletosTitulo"),
                         MessageBoxButtons.OK, MessageBoxIcon.Hand);
         return(false);
     }
     return(true);
 }
        private void AgregarAlArbol(PermisoBE permiso, TreeNode nodoPadre, int nivel)
        {
            TreeNode nodo = new TreeNode(permiso.ToString())
            {
                Tag = permiso
            };
            List <PermisoBE> permisosHijos = permiso.DevolverPerfil();

            foreach (PermisoBE p in permisosHijos)
            {
                // Pongo este nivel como método de seguridad contra los permisos anidados de manera cíclica
                if (nivel < 10)
                {
                    AgregarAlArbol(p, nodo, nivel + 1);
                }
            }

            if (nodoPadre == null)
            {
                trvPermisosAsignados.Nodes.Add(nodo);
            }
            else
            {
                nodoPadre.Nodes.Add(nodo);
            }
        }
        private void AgregarAlArbol(PermisoBE permiso, TreeNode nodoPadre)
        {
            TreeNode nodo = new TreeNode(permiso.ToString())
            {
                Tag = permiso
            };
            List <PermisoBE> permisosHijos = permiso.DevolverPerfil();

            foreach (PermisoBE p in permisosHijos)
            {
                AgregarAlArbol(p, nodo);
            }

            if (nodoPadre == null)
            {
                trvPermisos.Nodes.Add(nodo);
            }
            else
            {
                nodoPadre.Nodes.Add(nodo);
            }
        }
示例#4
0
        public static void Guardar(PermisoBE permiso, bool habilitado, bool actualizarHijos)
        {
            // Primero guardo los datos del permiso en sí
            if (permiso.Id > 0)
            {
                Actualizar(permiso, habilitado);
            }
            else
            {
                Insertar(permiso);
            }

            // Luego guardo los permisos hijos
            if (permiso.Id > 0 && actualizarHijos)
            {
                // Borro permisos hijos
                string         query      = "DELETE FROM permiso_permiso WHERE permiso_padre_id = @permisoPadreId";
                SqlParameter[] parameters =
                {
                    new SqlParameter("@permisoPadreId", permiso.Id)
                };
                SqlHelper.Ejecutar(query, parameters);

                // Inserto cada uno de los permisos hijos
                query = "INSERT INTO permiso_permiso (permiso_padre_id, permiso_hijo_id) VALUES (@permisoPadreId, @permisoHijoId)";
                foreach (PermisoBE hijo in permiso.DevolverPerfil())
                {
                    parameters = new SqlParameter[2]
                    {
                        new SqlParameter("@permisoPadreId", permiso.Id),
                        new SqlParameter("@permisoHijoId", hijo.Id)
                    };
                    SqlHelper.Ejecutar(query, parameters);
                }
            }
        }