private void btnIngresar_Click(object sender, EventArgs e)
        {
            InformacionDeLaExcepcion = ERespuestaBaseDeDatos.SinErrores;
            RespuestaDeSesion        = ERespuestaDelInicio.DatosCorrectos;

            RespuestaDeSesion = ClsInicioSesion.ComparaDatos(txtUsuario.Text.ToLower(), txtContraseña.Text, ref InformacionDeLaExcepcion);

            if (RespuestaDeSesion == ERespuestaDelInicio.DatosCorrectos)
            {
                txtContraseña.UseSystemPasswordChar = false;
                txtUsuario.Text    = TextoVisualUsuario;
                txtContraseña.Text = TextoVisualContraseña;

                Hide();

                FrmPrincipal AbrirFrmPrincipal = new FrmPrincipal();

                AbrirFrmPrincipal.FormClosed += CerrarSesion; //Cuando se cierra el formulario principal, se ejecuta el evento CerrarSesion

                AbrirFrmPrincipal.Show();
            }
            else
            {
                if (InformacionDeLaExcepcion != ERespuestaBaseDeDatos.SinErrores)
                {
                    switch (InformacionDeLaExcepcion)
                    {
                    case ERespuestaBaseDeDatos.ArgumentException:
                        MessageBox.Show($"ArgumentException: La cadena de conexión con la base de datos no " +
                                        $"existe \r\n\r\nContacte con el programador para informar y corregir el " +
                                        $"error", "ERROR CON LA BASE DE DATOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;

                    case ERespuestaBaseDeDatos.SqlException:
                        MessageBox.Show($"SqlException: La sentencia para buscar la información es " +
                                        $"invalida \r\n\r\nContacte con el programador para informar y corregir el " +
                                        $"error", "ERROR CON LA BASE DE DATOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;

                    case ERespuestaBaseDeDatos.Exception:
                        MessageBox.Show($"Exception: Posible error en la consulta \r\n\r\nContacte con el " +
                                        $"programador para informar y corregir el error", "ERROR CON LA BASE DE DATOS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    }
                }
                else
                {
                    switch (RespuestaDeSesion)
                    {
                    case ERespuestaDelInicio.UsuarioInexistente: { lblMensajeDeError.Text = "Usuario incorrecto"; break; }

                    case ERespuestaDelInicio.ClaveIncorrecta: { lblMensajeDeError.Text = "Contraseña incorrecta"; break; }

                    default: { lblMensajeDeError.Text = "Ocurrio un error inesperado al intentar comparar los datos para validar sesion"; break; }
                    }

                    lblMensajeDeError.Visible = true;
                }
            }
        }
Beispiel #2
0
        ///<param name="_Nombre">Parametro que se utiliza para validar usuario junto con el parametro contraseña.</param>
        ///<param name="_Contraseña">Parametro que se utiliza para validar usuario junto con el parametro nombre.</param>
        public Usuario LeerParaInicioSesion(string _Nombre, string _Contraseña, ref ERespuestaDelInicio _RespuestaDeInicio, ref string _InformacionDelError)
        {
            using (BDRestauranteEntities BBDD = new BDRestauranteEntities())
            {
                try
                {
                    _Nombre = _Nombre.ToLower();

                    Usuario CoincidenciaEncontrada = BBDD.Usuario.Include("Perfil").FirstOrDefault(Identificador => Identificador.Nombre.ToLower() == _Nombre ||
                                                                                                   Identificador.Contraseña == _Contraseña);

                    if (CoincidenciaEncontrada != null)
                    {
                        if (CoincidenciaEncontrada.ID_EstadoUsuario == (int)ClsEstadosUsuarios.EEstadosUsuarios.Inactivo)
                        {
                            _RespuestaDeInicio = ERespuestaDelInicio.DadoDeBaja;
                        }
                        else if (CoincidenciaEncontrada.Nombre.ToLower() == _Nombre && CoincidenciaEncontrada.Contraseña != _Contraseña)
                        {
                            _RespuestaDeInicio = ERespuestaDelInicio.ClaveIncorrecta;
                        }
                        else if (CoincidenciaEncontrada.Nombre.ToLower() != _Nombre && CoincidenciaEncontrada.Contraseña == _Contraseña)
                        {
                            _RespuestaDeInicio = ERespuestaDelInicio.UsuarioIncorrecto;
                        }
                    }
                    else
                    {
                        _RespuestaDeInicio = ERespuestaDelInicio.UsuarioYContraseñaIncorrecta;
                    }

                    return(BBDD.Usuario.Include("Perfil").SingleOrDefault(Identificador => Identificador.Nombre.ToLower() == _Nombre &&
                                                                          Identificador.Contraseña == _Contraseña));
                }
                catch (Exception Error)
                {
                    _InformacionDelError = $"OCURRIO UN ERROR INESPERADO AL INTENTAR LISTAR LA INFORMACIÓN: {Error.Message}\r\n\r\n" +
                                           $"ORIGEN DEL ERROR: {Error.StackTrace}\r\n\r\n" +
                                           $"OBJETO QUE GENERÓ EL ERROR: {Error.Data}\r\n\r\n\r\n" +
                                           $"ENVIE AL PROGRAMADOR UNA FOTO DE ESTE MENSAJE CON UNA DESCRIPCION DE LO QUE HIZO ANTES DE QUE SE GENERARÁ " +
                                           $"ESTE ERROR PARA QUE SEA ARREGLADO.";
                    return(null);
                }
            }
        }