예제 #1
0
        private void cmdAgregar_Click(object sender, EventArgs e)
        {
            //SI EL NOMBRE ES DISTINTO, LO MODIFCO
            if (unRol.Nombre != txtRol.Text)
            {
                Roles.ModificarNombre(txtRol.Text, unRol.Id);
            }
            Roles.CambiarEstado(unRol.Id, cbHabilitado.Checked);

            //LISTA DE FUNCIONALIDADES QUE TIENE ESE ROL
            List <Funcionalidad> listaQueTiene = Funcionalidades.ObtenerFuncionalidades(unRol.Id);

            //LISTA DE FUNCIONALIDADES CHEKEADAS
            List <Funcionalidad> listaDeFunc = new List <Funcionalidad>();

            foreach (Funcionalidad unaFunc in grillaFuncionalidades.CheckedItems)
            {
                listaDeFunc.Add(unaFunc);
            }

            //DOY DE BAJA LAS FUNC QUE YA NO ESTAN
            foreach (Funcionalidad unaFunc in listaQueTiene)
            {
                Funcionalidades.EliminarFuncionalidadPorRol(unRol.Id, unaFunc);
            }

            //DOY DE ALTA LAS NUEVAS
            foreach (Funcionalidad unaFunc in listaDeFunc)
            {
                Funcionalidades.AgregarFuncionalidadEnRol(unRol.Id, unaFunc);
            }

            MessageBox.Show("Se ha modificado el rol con éxito", "Enhorabuena!", MessageBoxButtons.OK);
            this.Close();
        }