private static Permiso ObtenerPermiso(int permisoId, int profundidad) { Permiso permiso; List <int> hijosIds = new List <int>(); if (profundidad < 10) { hijosIds = ObtenerPermisosHijos(permisoId); } if (hijosIds.Any()) { // Es un permiso compuesto permiso = new PermisoCompuesto(); foreach (int hijoId in hijosIds) { Permiso permisoHijo = ObtenerPermiso(hijoId, profundidad + 1); permiso.AgregarPermisoHijo(permisoHijo); } } else { // Es un permiso simple permiso = new PermisoSimple(); } CompletarPermiso(permiso, permisoId); return(permiso); }
private void EdicionPermisosUsuarioForm_Load(object sender, EventArgs e) { bsPermisosLista = new BindingSource(); PermisoCompuesto perfil = new PermisoCompuesto(); perfil.ObtenerHijos().AddRange(Editado.Perfil); bsPermisosLista.DataSource = new Permiso().Listar().Where(x => !perfil.EsValido(x.Nombre) && !Editado.Perfil.Contains(x)).ToList().OrderByDescending(x => x.TieneHijos()).ToList(); ListaPermisos.DataSource = bsPermisosLista; ActualizarArbol(); }
private void NuevoGrupoPermisoForm_Load(object sender, EventArgs e) { bsPermisosLista = new BindingSource(); if (Editado == null) { Editado = new PermisoCompuesto(); } txtNombre.DataBindings.Add("Text", Editado, "Nombre"); txtDescripcion.DataBindings.Add("Text", Editado, "Descripcion"); bsPermisosLista.DataSource = new Permiso().Listar().Where(x => !Editado.EsValido(x.Nombre) && !(x.Nombre.Equals(Editado.Nombre))).ToList().OrderByDescending(x => x.TieneHijos()).ToList(); ListaPermisos.DataSource = bsPermisosLista; ActualizarControles(); }