private void btn_aceptar_MouseDown(object sender, MouseButtonEventArgs e)
        {
            try
            {
                if ((Boolean)chb_cambiarContrase.IsChecked)
                {
                    if (HerramientasWindow.EncriptarConAES(txt_contraAnterior.Password).Equals(usuario.Contrasena))
                    {
                        if (txt_contraNueva.Password.Equals(txt_contraConfirmacion.Password))
                        {
                            usuario.Contrasena = HerramientasWindow.EncriptarConAES(txt_contraNueva.Password);
                        }
                        else
                        {
                            HerramientasWindow.MensajeErrorSimple("La contraseña nueva y su confirmación no son iguales.", "contraseña incorrecta");
                            return;
                        }
                    }
                    else
                    {
                        HerramientasWindow.MensajeErrorSimple("La contraseña anterior es incorrecta.", "contraseña incorrecta");
                        return;
                    }
                }
                usuario.SNombreCompleto = txt_nombre.Text;
                if (seCargoFoto)
                {
                    usuario.ImagenAsociada.EsModificado = true;
                    usuario.ImagenAsociada.Imagen       = HerramientasWindow.ComprimirImagen(HerramientasWindow.ImageSourceABitmap(img_fotoUsuario.Source, System.Drawing.Imaging.ImageFormat.Jpeg), 128, 128, System.Drawing.Imaging.ImageFormat.Jpeg);
                }
                usuario.EsModificado = true;

                manejador.Guardar(usuario);
                HerramientasWindow.MensajeInformacion("Se guardó correctamente la cuenta de usuario.", "Guardado exitoso");
                Close();
            }
            catch (Exception ex)
            {
                HerramientasWindow.MensajeError(ex, ex.Message, "Error");
            }
        }
        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; }
            }
        }
예제 #3
0
        private void btn_iniciar_MouseDown(object sender, MouseButtonEventArgs e)
        {
            try
            {
                lnLogin.VerificarExistenciaDeUsuarioAdmin();
                usuario = lnLogin.ValidarAcceso(txt_usuario.Text.Trim(), txt_contraseña.Text.Trim());

                if (usuario != null)
                {
                    if (ModoBloqueo)
                    {
                        if (UsuarioBloqueo.Cuenta.Equals(usuario.Cuenta) && UsuarioBloqueo.Contrasena.Equals(HerramientasWindow.EncriptarConAES(txt_contraseña.Text)))
                        {
                            p.ReiniciarAutobloqueo();
                        }
                        else
                        {
                            HerramientasWindow.Mensaje("Verificar datos de acceso para el usuario que bloqueó el sistema.", "Verificar datos");
                            AgregarLoginFallido();
                            txt_contraseña.Text = "";
                            return;
                        }
                    }

                    if (usuario.Contrasena != null && !usuario.Contrasena.Equals(HerramientasWindow.EncriptarConAES(txt_contraseña.Text)))
                    {
                        MostrarMensaje();//HerramientasWindow.Mensaje("Usuario o contraseña invalidos.", "Verificar datos");
                        AgregarLoginFallido();
                        txt_contraseña.Text = "";
                        return;
                    }

                    if (datosSistema != null && datosSistema.BUsarProteccionDeCuentasEnLogin && !ModoBloqueo && usuario.BEstaConectadoAlSistema)
                    {
                        if (usuario.EsAdministradorDeSistema || (usuario.RolSistema != null && usuario.RolSistema.EsAdministradorDeSistema))
                        {
                            usuario.SMensajeDeIntentoDeConexionEnOtroEquipo = "Se realizó una conexión desde el equipo '" + Environment.MachineName + "' con tu usuario y contraseña correctos, esta conexión se cerrará.";
                            usuario.EsModificado = true;
                            manejador.Guardar(usuario);
                            HerramientasWindow.Mensaje("Se detectó que la cuenta estaba iniciada en otro equipo. Se iniciará la conexión en cuanto se haya finalizado la sesión encontrada despues de dar clic en aceptar. \nContinuar...", "Cuenta iniciada previamente");


                            while (true)
                            {
                                usuario = manejador.Cargar <_sis_Usuario>(_sis_Usuario.consultaPorID, new List <Object>()
                                {
                                    usuario.Id
                                });
                                if (usuario.SMensajeDeIntentoDeConexionEnOtroEquipo != null && !usuario.SMensajeDeIntentoDeConexionEnOtroEquipo.Equals(""))
                                {
                                    //HerramientasWindow.Mensaje("Aún no se ha cerrado la conexión en el otro equipo, por favor vuelva a intentar.", "Cuenta iniciada previamente");
                                    Thread.Sleep(500);
                                }
                                else
                                {
                                    break;
                                }
                            }

                            //return;
                        }
                        else
                        {
                            usuario.SMensajeDeIntentoDeConexionEnOtroEquipo = "Se intentó una conexión desde el equipo '" + Environment.MachineName + "' con tu usuario y contraseña correctos, verificar conexión.";
                            usuario.EsModificado = true;
                            manejador.Guardar(usuario);
                            HerramientasWindow.Mensaje("Actualmente la cuenta se encuentra iniciada en otro equipo, se ha enviado un mensaje de aviso a la cuenta.", "Cuenta iniciada previamente");
                            return;
                        }
                    }

                    if (!usuario.Cuenta.Equals("administrador") && usuario.BEstaDesactivado)
                    {
                        HerramientasWindow.Mensaje("Actualmente tu cuenta está desactivada, favor de contactar con el administrador de Sistemas.", "Cuenta desactivada");
                        return;
                    }

                    _sis_EquiposRegistrados equipoRegistrado = manejador.Cargar <_sis_EquiposRegistrados>(_sis_EquiposRegistrados.ConsultaPorNombreEquipo, new List <object>()
                    {
                        Environment.MachineName
                    });
                    if (equipoRegistrado != null && equipoRegistrado.BEstaBloqueado && !usuario.EsAdministradorDeSistema)
                    {
                        HerramientasWindow.MensajeAdvertenciaAlta("El equipo actual se encuentra bloqueado, favor de contactar al administrador del Sistema.", "Equipo bloqueado");
                        return;
                    }
                    variablesData.GuardarValorVariable("ultimo_usuario", txt_usuario.Text);
                    variablesData.ActualizarArchivo();

                    accesosFallidos.Clear();
                    if (p == null)
                    {
                        p = new Principal(usuario, manejadorPrincipal);
                        p.seCerroSistema += p_seCerroSistema;
                    }

                    Hide();
                    ActualizarEquipoRegistrado();
                    //Thread actualizarEquipoRegistrado = new Thread(ActualizarEquipoRegistrado);
                    //actualizarEquipoRegistrado.Start();

                    usuario.BEstaConectadoAlSistema = true;
                    usuario.EsModificado            = true;
                    manejador.Guardar(usuario);

                    p.Show();
                    cargarCaracteristicasVisualesDeServidor();
                }
                else
                {
                    //MostrarMensaje();
                    AgregarLoginFallido();
                    txt_contraseña.Text = "";
                    if (conteoRegistrosLimite > 2)
                    {
                        HerramientasWindow.MensajeAdvertenciaAlta("El equipo se bloqueará, favor de contactar al administrador.", "Equipo bloqueado");
                    }
                }
            }
            catch (Exception ex)
            {
                HerramientasWindow.MensajeError(ex, "Error: " + ex.Message, "Error");
            }
        }