public String ValidarAcceso(String usuario, String pass)
        {
            login.enviarMensaje += login_enviarMensaje;
            _sis_Usuario usr = login.ValidarAcceso(usuario, pass);

            if (usr != null)
            {
                JSON     json = new JSON(usr, 2);
                _sis_Rol rol  = usr.RolSistema;
                return(json.ObtenerJSON());
            }
            else
            {
                return(mensajes);
            }
        }
 private void LimpiarDatosRoles()
 {
     HerramientasWindow.AsignarFondoBlancoImage(img_rolImagenRol);
     txt_rolNombreRol.Text     = "";
     txt_rolNombreCarpeta.Text = "";
     txtr_rolDescripcion.Text  = "";
     lb_rolCarpetasEnRol.Items.Clear();
     lb_rolFormulariosEnCarpeta.Items.Clear();
     chb_rolEsAdministrador.IsChecked             = false;
     chb_RolPuedeAccederACatalogoRapido.IsChecked = false;
     HerramientasWindow.AsignarFondoBlancoImage(img_rolImagenCarpeta);
     ContenedorPadreRol     = null;
     ContenedorTemporal     = new _sis_Contenedor();
     ContenedorSeleccionado = null;
     rol = null;
 }
        private void btn_rolSeleccionar_MouseDown(object sender, MouseButtonEventArgs e)
        {
            if (lb_rolesRolesEnSistema.SelectedItem == null)
            {
                return;
            }
            String nombre = lb_rolesRolesEnSistema.SelectedItem.ToString();

            rol = manejador.Cargar <_sis_Rol>(_sis_Rol.ConsultaPorNombre, new List <object>()
            {
                nombre
            });

            txt_rolNombreRol.Text                        = rol.Nombre;
            txtr_rolDescripcion.Text                     = rol.Descripcion;
            chb_rolEsAdministrador.IsChecked             = rol.EsAdministradorDeSistema;
            chb_RolPuedeAccederACatalogoRapido.IsChecked = rol.BPuedeAccederCatalogoRapido;

            if (rol.ImagenAsociada != null)
            {
                img_rolImagenRol.Source = HerramientasWindow.BitmapAImageSource(rol.ImagenAsociada.Imagen);
            }

            lb_rolCarpetasEnRol.Items.Clear();

            if (rol.Contenedores != null)
            {
                foreach (_sis_Contenedor conten in rol.Contenedores)
                {
                    lb_rolCarpetasEnRol.Items.Add(conten.STitulo);
                }
            }

            ContenedorPadreRol = new _sis_Contenedor();
            ContenedorTemporal = new _sis_Contenedor();
            ContenedorPadreRol.Contenedores = rol.Contenedores;
            ContenedorTemporal = ContenedorPadreRol;
            historial.Clear();
        }
        private void toolbox_Nuevo()
        {
            TabItem tabitem = (TabItem)tc_opciones.SelectedItem;

            if (tabitem.Header.Equals("Creación y configuración de roles"))
            {
                ContenedorTemporal = new _sis_Contenedor();
                LimpiarDatosRoles();
                rol = null;
            }
            else if (tabitem.Header.Equals("Registro de formularios"))
            {
                LimpiarDatosFormulario();
                formulario = null;
                cmb_filtroFormularios.SelectedIndex = -1;
            }
            else if (tabitem.Header.Equals("Registro de usuarios"))
            {
                LimpiarDatosUsuario();
                usuario = null;
            }
        }
        private void toolbox_Guardar()
        {
            TabItem tabitem = (TabItem)tc_opciones.SelectedItem;

            if (tabitem.Header.Equals("Creación y configuración de roles"))
            {
                if (txt_rolNombreRol.Text.Equals(""))
                {
                    HerramientasWindow.MensajeInformacion("Se requiere un nombre de rol para poder guardar.", "Dato requerido");
                    return;
                }
                if (rol == null)
                {
                    rol = new _sis_Rol();
                }
                rol.Nombre = txt_rolNombreRol.Text;
                if (rol.ImagenAsociada == null)
                {
                    rol.ImagenAsociada = new _sis_ImagenAsociada();
                }
                rol.ImagenAsociada.Imagen = HerramientasWindow.ObtenerBitmapDeImageControl(img_rolImagenRol, HerramientasWindow.FormatoImagen.PNG);

                if (rol.ImagenAsociada.Imagen != null)
                {
                    rol.ImagenAsociada.EsModificado = true;
                }

                rol.EsModificado = true;
                rol.BPuedeAccederCatalogoRapido = (Boolean)chb_RolPuedeAccederACatalogoRapido.IsChecked;
                rol.EsAdministradorDeSistema    = (bool)chb_rolEsAdministrador.IsChecked;
                if (ContenedorPadreRol != null)
                {
                    rol.Contenedores = ContenedorPadreRol.Contenedores;
                }
                try
                {
                    manejador.IniciarTransaccion();
                    if (manejador.Guardar(rol) != 0)
                    {
                        manejador.GuardarObjetosModificados();
                        manejador.TerminarTransaccion();
                        HerramientasWindow.MensajeInformacion("Se guardó el rol con éxito.", "Guardado Exitoso");
                    }
                    LimpiarDatosRoles();
                }
                catch (Exception ex) { manejador.DeshacerTransaccion(); HerramientasWindow.MensajeError(ex, "Ocurrió un error al guardar: " + ex.Message, "Error"); return; }
                CargarRoles();
            }
            else if (tabitem.Header.Equals("Registro de formularios"))
            {
                if (txt_formulariosReferenciaFormulario.Text.Equals(""))
                {
                    HerramientasWindow.MensajeInformacion("Se requiere un formulario de referencia para poder guardar.", "Dato requerido");
                    return;
                }
                if (txt_formulariosNombreEnSistema.Text.Equals(""))
                {
                    HerramientasWindow.MensajeInformacion("Se requiere un nombre de formulario para poder guardar.", "Dato requerido");
                    return;
                }

                if (formulario == null)
                {
                    formulario = new _sis_Formulario();
                }
                formulario.EsModificado = true;

                formulario.STituloFormulario     = txt_formulariosNombreEnSistema.Text;
                formulario.SReferenciaFormulario = txt_formulariosReferenciaFormulario.Text;
                formulario.BPermiteMultiples     = (bool)chb_formulariosPermiteDuplicados.IsChecked;
                formulario.SDescripcion          = txt_formulariosDescripcionEnSistema.Text;
                if (formulario.ImagenAsociada == null)
                {
                    formulario.ImagenAsociada = new _sis_ImagenAsociada();
                }
                formulario.ImagenAsociada.Imagen = HerramientasWindow.ObtenerBitmapDeImageControl(img_imagenFormulario, HerramientasWindow.FormatoImagen.PNG);

                if (formulario.ImagenAsociada.Imagen != null)
                {
                    formulario.ImagenAsociada.EsModificado = true;
                }

                try
                {
                    manejador.IniciarTransaccion();
                    if (manejador.Guardar(formulario) != 0)
                    {
                        manejador.TerminarTransaccion();
                        HerramientasWindow.MensajeInformacion("Se guardó el formulario con éxito.", "Guardado Exitoso");
                        CargarFormularios(true);
                    }
                }
                catch (Exception ex) { manejador.DeshacerTransaccion(); HerramientasWindow.MensajeError(ex, "Ocurrió un error al guardar: " + ex.Message, "Error"); return; }
                formulario = null;
                LimpiarDatosFormulario();
                cmb_filtroFormularios.SelectedIndex = -1;
            }
            else if (tabitem.Header.Equals("Registro de usuarios"))
            {
                if (!txt_usuarioContraseñaUsuario.Password.Trim().Equals(""))
                {
                    if (!txt_usuarioContraseñaUsuario.Password.Trim().Equals(txt_usuarioContraseñaConfirmacionUsuario.Password))
                    {
                        HerramientasWindow.MensajeInformacion("La contraseña y su confirmación no coinciden.", "Error en contraseña");
                        return;
                    }
                }

                if (txt_usuarioCuentaUsuario.Text.Trim().Equals(""))
                {
                    HerramientasWindow.MensajeInformacion("El usuario debe tener una cuenta de usuario.", "Dato requerido");
                    return;
                }
                if (txt_usuarioNombreUsuario.Text.Trim().Equals(""))
                {
                    HerramientasWindow.MensajeInformacion("El usuario debe tener una Nombre de usuario.", "Dato requerido");
                    return;
                }
                if (usuario == null)
                {
                    usuario = new _sis_Usuario();
                }
                usuario.BEstaDesactivado = (bool)chb_usuariosEstaDesactivada.IsChecked;
                usuario.Cuenta           = txt_usuarioCuentaUsuario.Text;
                if (!txt_usuarioContraseñaUsuario.Password.Trim().Equals(""))
                {
                    usuario.Contrasena = HerramientasWindow.EncriptarConAES(txt_usuarioContraseñaUsuario.Password);
                }
                if (usuario.ImagenAsociada == null)
                {
                    usuario.ImagenAsociada = new _sis_ImagenAsociada();
                }
                usuario.ImagenAsociada.Imagen = HerramientasWindow.ComprimirImagen(HerramientasWindow.ObtenerBitmapDeImageControl(img_usuarioImagenUsuario, HerramientasWindow.FormatoImagen.JPEG), 128, 128, System.Drawing.Imaging.ImageFormat.Jpeg);
                if (usuario.ImagenAsociada.Imagen != null)
                {
                    usuario.ImagenAsociada.EsModificado = true;
                }
                usuario.SEmail                      = txt_usuarioEmailUsuario.Text;
                usuario.SNombreCompleto             = txt_usuarioNombreUsuario.Text;
                usuario.EsModificado                = true;
                usuario.BPuedeAccederCatalogoRapido = (Boolean)chb_UsuarioPuedeAccederACatalogoRapido.IsChecked;
                usuario.EsAdministradorDeSistema    = (bool)chb_usuariosEsAdministrador.IsChecked;
                usuario.BRecibeVersionesPrueba      = (bool)chb_UsuarioRecibeVersionesPrueba.IsChecked;
                usuario.BEsSoporte                  = (bool)chb_usuariosEsSoporte.IsChecked;
                if (cmb_usuariosRolesEnSistema.SelectedItem != null)
                {
                    _sis_Rol rolSel = manejador.Cargar <_sis_Rol>(_sis_Rol.ConsultaPorNombre, new List <object>()
                    {
                        cmb_usuariosRolesEnSistema.SelectedItem.ToString()
                    });

                    usuario.RolSistema = rolSel;
                }

                try
                {
                    manejador.IniciarTransaccion();
                    if (manejador.Guardar(usuario) != 0)
                    {
                        manejador.TerminarTransaccion();
                        CargarUsuarios();
                        HerramientasWindow.MensajeInformacion("Se guardó el usuario con éxito.", "Guardado Exitoso");
                    }
                }
                catch (Exception ex) { manejador.DeshacerTransaccion(); HerramientasWindow.MensajeError(ex, "Ocurrió un error al guardar: " + ex.Message, "Error"); return; }
                usuario = null;
                LimpiarDatosUsuario();
                CargarUsuarios();
            }
            else if (tabitem.Header.Equals("Configuración de sistema"))
            {
                _sis_DatosSistema datosSistema = manejador.Cargar <_sis_DatosSistema>(_sis_DatosSistema.ConsultaTodos);
                if (datosSistema == null)
                {
                    datosSistema = new _sis_DatosSistema();
                }
                datosSistema.EsModificado = true;

                datosSistema.BImagenFondoLogin     = HerramientasWindow.ComprimirImagen(HerramientasWindow.ObtenerBitmapDeImageControl(img_imagenFondoLogin, HerramientasWindow.FormatoImagen.JPEG), 480, 180, System.Drawing.Imaging.ImageFormat.Jpeg);
                datosSistema.BImagenFondoPrincipal = HerramientasWindow.ComprimirImagen(HerramientasWindow.ObtenerBitmapDeImageControl(img_imagenFondoSistema, HerramientasWindow.FormatoImagen.JPEG), 1024, 768, System.Drawing.Imaging.ImageFormat.Jpeg);
                datosSistema.BImagenIcono          = HerramientasWindow.ComprimirImagen(HerramientasWindow.ObtenerBitmapDeImageControl(img_imagenIcono, HerramientasWindow.FormatoImagen.PNG), 128, 128, System.Drawing.Imaging.ImageFormat.Png);
                datosSistema.STitulo = txt_nombreSistema.Text;

                datosSistema.BUsarProteccionDeCuentasEnLogin = (Boolean)chb_proteccionSistemaLogin.IsChecked;

                if (!txt_sistemaTiempoAutobloqueo.Text.Trim().Equals(""))
                {
                    datosSistema.ISegundosAutobloqueo = Convert.ToInt32(txt_sistemaTiempoAutobloqueo.Text);
                }
                if (!txt_sistemaTiempoAlmacenObjetos.Text.Trim().Equals(""))
                {
                    datosSistema.ISegundosParaAlmacenObjetos = Convert.ToInt32(txt_sistemaTiempoAlmacenObjetos.Text);
                }

                try
                {
                    manejador.IniciarTransaccion();
                    if (manejador.Guardar(datosSistema) != 0)
                    {
                        manejador.TerminarTransaccion();
                        HerramientasWindow.MensajeInformacion("Se guardó la configuración con éxito.", "Guardado Exitoso");
                    }
                }
                catch (Exception ex) { manejador.DeshacerTransaccion(); HerramientasWindow.MensajeError(ex, "Ocurrió un error al guardar: " + ex.Message, "Error"); return; }
            }
        }