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; } } }
///<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); } } }