コード例 #1
0
 private void addFunction_Click(object sender, EventArgs e)
 {
     if (!newRol)
     {
         Funcionalidades modificacion = new Funcionalidades((int)unRol.Cells["idRol"].Value);
         modificacion.FormClosed += new System.Windows.Forms.FormClosedEventHandler(FuncionalidadesCerrada);
         modificacion.Show();
     }
     else
     {
         System.Windows.Forms.MessageBox.Show("Debe Guardar Primero el Rol antes de asignar Funcionalidad");
     }
 }
コード例 #2
0
        } // FIN insertar()

        // Vamos a actualizar un rol existente (nombreRol existe en la BD)
        public static bool actualizar(string nombreRolAnterior, string nombreRol, Dictionary <string, bool> funcionalidades)
        {
            // 1. Primero insertamos el nombre del rol (si no existe)
            string queryActualizarRol =
                "UPDATE LOS_BARONES_DE_LA_CERVEZA.Roles "
                + "SET nombre_rol = @nombre_rol "
                + "WHERE nombre_rol = @nombre_rol_anterior";

            List <Parametro> parametros     = new List <Parametro>();
            Parametro        paramNombreRol = new Parametro("@nombre_rol", SqlDbType.NVarChar, nombreRol, 100);

            parametros.Add(paramNombreRol);
            Parametro paramNombreRolAnterior = new Parametro("@nombre_rol_anterior", SqlDbType.NVarChar, nombreRolAnterior, 100);

            parametros.Add(paramNombreRolAnterior);

            Query actualizarRol           = new Query(queryActualizarRol, parametros);
            int   cantidadFilasInsertadas = actualizarRol.ejecutarNonQuery(); // filas insertadas puede ser 0 o 1

            // 2. Ahora insertamos/actualizamos las funcionalidades del rol
            foreach (KeyValuePair <string, bool> funcionalidad in funcionalidades)
            {
                if (funcionalidad.Value.Equals(true))
                {
                    // Si se seleccionó la funcionalidad actual la insertamos
                    Funcionalidades.insertar(nombreRol, funcionalidad.Key);
                }
                else
                {
                    // Si la funcionalidad actual NO está marcada, entonces debemos eliminarla (si antes de editar lo estaba)
                    Funcionalidades.eliminar(nombreRol, funcionalidad.Key);
                }
            } // Fin foreach

            // Si llegamos a este punto significa que el nuevo rol y sus funcionalidades se insertaron/modificaron correctamente
            return(true);
        } // FIN actualizar()
コード例 #3
0
        private void btnCrearRol_Click(object sender, EventArgs e)
        {
            // 1. Primero obtenemos el nombre del nuevo rol que el usuario ingreso
            string nombreRol = txtbxNombreRol.Text;

            // 2. Validamos que haya NO se haya ingresado un nombre vacío
            if (NombreRol.campoNombreVacío(nombreRol).Equals(true))
            {
                MensajeBox.error("Debe ingresar un nombre para el rol.");
                return;
            }

            // 3. Si se está modificando el Rol_Cliente, validamos que NO se esté modificando el nombre del rol
            if (rolAEditar.Equals(DEF.ROL_CLIENTE) && !nombreRol.Equals(DEF.ROL_CLIENTE))
            {
                MensajeBox.info("No se puede cambiar el nombre del rol Cliente");
                return;
            }

            // 3. Validamos que el nombre del rol esté disponible
            if (nombreRol != rolAEditar)
            {
                if (NombreRol.estaDisponible(nombreRol).Equals(false))
                {
                    MensajeBox.error("El nombre elegido para el rol ya se encuentra en uso. Por favor, ingrese uno diferente.");
                    return;
                }
            }
            // Si nombreRol != rolAEditar significa que estamos en modo edición y el usuario
            // cambió el nombre del rol.

            // 4. Capturamos los checkbox de funcionalidades seleccionados
            Dictionary <string, bool> funcionalidades = Funcionalidades.seleccionadas(chbxAbmCruceros.Checked, chbxAbmPuertos.Checked, chbxAbmRecorridos.Checked,
                                                                                      chbxAbmRol.Checked, chbxComprarReservarViaje.Checked, chbxGenerarViaje.Checked, chbxListadosEstadisticos.Checked, chbxPagoReserva.Checked);

            // 5. Validamos que el usuario haya seleccionado al menos una funcionalidad
            if (Funcionalidades.alMenosUna(funcionalidades).Equals(false))
            {
                // El usuario NO selecciono ninguna funcionalidad
                MensajeBox.error("Debe seleccionar al menos una funcionalidad.");
                return;
            }

            // 6. En este punto ya podemos insertar o actualizar el nuevo rol en la BD
            if (modo.Equals("EDICION"))
            { /*** INICIO MODO EDICIÓN ***/
                // rolAEditar tiene el valor del nombre de rol anterior y nombreRol el nuevo
                bool rolActualizado = Rol.actualizar(rolAEditar, nombreRol, funcionalidades);
                if (rolActualizado.Equals(true))
                {
                    MensajeBox.info("El rol se actualizó correctamente.");
                    rolAEditar = nombreRol; // El rol anterior ahora es el nuevo rol
                    return;
                }
                else
                {
                    MensajeBox.error("El rol no se pudo actualizar.");
                    return;
                }
            } /*** FIN MODO EDICIÓN ***/

            // Si no estamos en modo edición es que vamos a insertar un rol nuevo
            bool rolInsertado = Rol.insertar(nombreRol, funcionalidades);

            if (rolInsertado.Equals(true))
            {
                // El rol se inserto correctamente
                MensajeBox.info("El nuevo rol se creo correctamente.");
                return;
            }
            else
            {
                // El rol NO se pudo insertar
                MensajeBox.error("El nuevo rol no se pudo crear. Intente nuevamente.");
                return;
            }
        } // FIN btnCrearRol_Click()