示例#1
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()