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(); }