private void DgvRol_CellContentClick(object sender, DataGridViewCellEventArgs e) { //Funciona solo cuando el usuario hace click en una fila (no en la cabecera) if (e.RowIndex == -1) return; //Obtengo el rol correspondiente a la fila seleccionada a partir del ID (primer columna de la fila) var rolSeleccionado = _roles.Find(r => r.Descripcion == (string)DgvRol.Rows[e.RowIndex].Cells[0].Value); if (rolSeleccionado != null) { //Cargo la lista de funcionalidades del rol LstFuncionalidades.DataSource = rolSeleccionado.Funcionalidades; //El usuario tocó el botón de modificar if (e.ColumnIndex == 2) { var altasModificacionesVisibilidad = new FrmABMRolAltasModificaciones(rolSeleccionado); altasModificacionesVisibilidad.ShowDialog(); //Si modificó satisfactoriamante el rol, actualizo la grilla if (altasModificacionesVisibilidad.AccionCompleta) ActualizarPantalla(null); } else if (e.ColumnIndex == 3) { //El usuario tocó el botón de inhabilitar //El rol seleccionado ya se encuentra eliminado (baja lógica) if (!rolSeleccionado.Habilitado) { MessageBox.Show("No se puede eliminar el rol ya que ya se encuentra inhabilitada", "Atencion"); return; } //Esta tratando de eliminar el rol administrador (no lo permito) if (rolSeleccionado.Descripcion == "Administrador") { MessageBox.Show("No se puede inhabilitar el rol administrador", "Atencion"); return; } var dialogAnswer = MessageBox.Show(string.Format("Esta seguro que quiere inhabilitar el rol {0}?", rolSeleccionado.Descripcion), "Atención", MessageBoxButtons.YesNo); if (dialogAnswer == DialogResult.Yes) { //Defino que ya no este más activo el rol e impacto en la base de datos rolSeleccionado.Habilitado = false; RolPersistencia.Actualizar(rolSeleccionado, null); //Vuelvo a cargar la lista de roles ActualizarPantalla(null); } } } }
private void BtnNuevo_Click(object sender, EventArgs e) { FrmABMRolAltasModificaciones frmABMRolAM = new FrmABMRolAltasModificaciones(null); frmABMRolAM.ShowDialog(); //Paso NULL para volver a obtener todos los registros de la base ActualizarPantalla(null); }