예제 #1
0
        private void btn_guardar_Click(object sender, System.EventArgs e)
        {
            RolService rolService = (RolService)ServiceFactory.GetService("Rol");

            List <Funcionalidad> funcionalidades_cambiadas = new List <Funcionalidad>();

            bool huboCambios = false;

            if (!habilitado.Checked && rol.Estado)
            {
                rolService.deleteRol(rol.Id);
                rol.Estado  = false;
                huboCambios = true;
            }
            else if (habilitado.Checked && !rol.Estado)
            {
                rolService.habilitarRol(rol.Id);
                rol.Estado  = true;
                huboCambios = true;
            }

            foreach (object item in list_funcionalidades.Items)
            {
                Funcionalidad fun = (Funcionalidad)item;

                if (list_funcionalidades.CheckedItems.Contains(item))
                {
                    if (fun.GetEstado().Equals(Funcionalidad.EstadoFuncionalidad.SIN_ESTADO))
                    {
                        fun.SetEstado(Funcionalidad.EstadoFuncionalidad.NUEVO);
                        funcionalidades_cambiadas.Add(fun);
                    }
                }
                else
                {
                    if (fun.GetEstado().Equals(Funcionalidad.EstadoFuncionalidad.SIN_CAMBIOS))
                    {
                        fun.SetEstado(Funcionalidad.EstadoFuncionalidad.BORRADO);
                        funcionalidades_cambiadas.Add(fun);
                    }
                }
            }

            if (funcionalidades_cambiadas.Count != 0)
            {
                rolService.administrarCambiosFuncionalidades(rol.Id, funcionalidades_cambiadas);
                huboCambios = true;
            }

            if (huboCambios)
            {
                MessageBox.Show("Modificación del rol correcta");
            }
            this.previous.Show();
            this.Hide();
        }