private void Button_ReenviarCorreo(object sender, RoutedEventArgs e)
        {
            sonidoBoton.Play();
            ServicioErstick2.ControlCuentaClient cliente = new ServicioErstick2.ControlCuentaClient();
            int respuesta;

            try
            {
                respuesta = cliente.EnviarCorreo(cuenta);
                if (respuesta == (int)EstadoDeOperacion.OperacionExitosa)
                {
                    MessageBox.Show(Properties.Resources.correoEnviado);
                }
                if (respuesta == (int)EstadoDeOperacion.ErrorBaseDatos)
                {
                    MessageBox.Show(Properties.Resources.errorConexionBaseDatos, Properties.Resources.tituloErrorConexion, MessageBoxButton.OK, MessageBoxImage.Error);
                }
                if (respuesta == (int)EstadoDeOperacion.NoSeEnvioCorreo)
                {
                    MessageBox.Show(Properties.Resources.errorMandarCorreo);
                }
            }
            catch (System.ServiceModel.EndpointNotFoundException)
            {
                MessageBox.Show(Properties.Resources.errorConexionServidor, Properties.Resources.tituloErrorConexion, MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
 private void Button_ValidarCuenta(object sender, RoutedEventArgs e)
 {
     sonidoBoton.Play();
     if (textBox_Codigo.Text == "")
     {
         string ingresarCodigo = Properties.Resources.ingresarCodigoActivacion;
         MessageBox.Show(ingresarCodigo);
         return;
     }
     ServicioErstick2.ControlCuentaClient cliente = new ServicioErstick2.ControlCuentaClient();
     try
     {
         int respuesta = cliente.ActivarCuentaJugador(cuenta, textBox_Codigo.Text);
         if (respuesta == (int)EstadoDeOperacion.OperacionExitosa)
         {
             var cuentaActivada = Properties.Resources.cuentaActivada;
             MessageBox.Show(cuentaActivada);
             RegistroUsuario vetanaPrincipal = new RegistroUsuario();
             vetanaPrincipal.Show();
             this.Close();
         }
         else if (respuesta == (int)EstadoDeOperacion.CodigoInvalido)
         {
             MessageBox.Show(Properties.Resources.codigoInvalido);
         }
         else if (respuesta == (int)EstadoDeOperacion.ErrorBaseDatos || respuesta == (int)EstadoDeOperacion.Excepcion)
         {
             MessageBox.Show(Properties.Resources.errorConexionBaseDatos, Properties.Resources.tituloErrorConexion, MessageBoxButton.OK, MessageBoxImage.Error);
         }
     }
     catch (System.ServiceModel.EndpointNotFoundException)
     {
         MessageBox.Show(Properties.Resources.errorConexionServidor, Properties.Resources.tituloErrorConexion, MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
 /// <summary>
 /// Método que muestra los puntajes del jugador que recibe como parametro, tambien muestra los
 /// puntajes de todas las partidas.
 /// </summary>
 /// <param name="jugadorRecibido"></param>
 public ConsultarPuntajes(ServicioErstick2.Jugador jugadorRecibido)
 {
     jugador = jugadorRecibido;
     InitializeComponent();
     ServicioErstick2.ControlCuentaClient cliente = new ServicioErstick2.ControlCuentaClient();
     DataGrid_MisPuntajes.ItemsSource     = cliente.ConsultarPuntajesPropios(jugador);
     DataGrid_MejoresPuntajes.ItemsSource = cliente.ConsultarMejoresPuntajes();
 }
        /// <summary>
        /// Llama al servidor para iniciar sesión con el correo y la contraseña y abre el menú principal.
        /// Abre la ventana de ingresar código de activación de cuenta si la cuenta no está activada.
        /// </summary>
        /// <param name="sender">Botón de iniciar sesión.</param>
        /// <param name="e">Evento Click.</param>
        /// <exception cref="System.ServiceModel.EndpointNotFoundException">
        /// Arrojada cuando no hay conexión con el servidor.
        /// </exception>
        private void Button_IniciarSesion(object sender, RoutedEventArgs e)
        {
            sonidoBoton.Play();
            String correoIngresado     = textBox_Usuario.Text;
            String contraseñaIngresada = passwordBox_contraseña.Password;

            if (!ValidarCamposVacios() || !ValidarFormatoCorreo())
            {
                return;
            }
            ServicioErstick2.ControlCuentaClient cliente = new ServicioErstick2.ControlCuentaClient();
            ServicioErstick2.Cuenta cuenta = new ServicioErstick2.Cuenta()
            {
                Correo = correoIngresado, Contraseña = contraseñaIngresada
            };
            ServicioErstick2.Jugador jugador;
            try
            {
                jugador = cliente.IniciarSesion(cuenta);
                cuenta  = cliente.VerificarCuenta(cuenta);
            }
            catch (System.ServiceModel.EndpointNotFoundException)
            {
                MessageBox.Show(Properties.Resources.errorConexionServidor, Properties.Resources.tituloErrorConexion, MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            if (jugador != null && cuenta != null)
            {
                if (cuenta.Correo.Equals(ERRORBD) || jugador.Apodo.Equals(ERRORBD))
                {
                    MessageBox.Show(Properties.Resources.errorConexionBaseDatos, Properties.Resources.tituloErrorConexion, MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                if (jugador.Apodo.Equals(ERRORSECION))
                {
                    MessageBox.Show(Properties.Resources.errorUsuarioConectado, Properties.Resources.tituloErrorConexion, MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                if (cuenta.Validada)
                {
                    EntrarLobby ventanaPrincipal = new EntrarLobby(jugador);
                    ventanaPrincipal.Show();
                    this.Close();
                    musicaFondo.Stop();
                }
                else
                {
                    IngresarCodigo ventanaIngresarCodigo = new IngresarCodigo(cuenta);
                    ventanaIngresarCodigo.Show();
                    this.Close();
                    musicaFondo.Stop();
                }
            }
            else
            {
                MessageBox.Show(Properties.Resources.contraseñaInvalida);
            }
        }
        /// <summary>
        /// Envia los datos del nuevo usuario verificados al servidor para ser registrado.
        /// </summary>
        /// <param name="sender">Botón de reistrarse.</param>
        /// <param name="e">Evento de click.</param>
        /// <exception cref="System.ServiceModel.EndpointNotFoundException">
        /// Arrojada cuando no hay conexión con el servidor.
        /// </exception>
        private void Button_Registrarse(object sender, RoutedEventArgs e)
        {
            sonidoBoton.Play();
            if (!ValidarCampos() || !ValidarFormatoCorreo())
            {
                return;
            }
            ServicioErstick2.ControlCuentaClient cliente = new ServicioErstick2.ControlCuentaClient();
            ServicioErstick2.Cuenta cuenta = new ServicioErstick2.Cuenta()
            {
                Correo = textBox_CorreoElectronico.Text, Contraseña = passwordBox_Contraseña.Password
            };
            ServicioErstick2.Jugador jugador = new ServicioErstick2.Jugador()
            {
                Apodo = textBox_Apodo.Text, Nombre = textBox_NombreUsuario.Text, Apellidos = textBox_Apellidos.Text
            };
            int respuesta;

            try
            {
                respuesta = cliente.RegistrarJugador(jugador, cuenta);
                if (respuesta == (int)EstadoDeOperacion.OperacionExitosa)
                {
                    cliente.EnviarCorreo(cuenta);
                    IngresarCodigo ingresarCodigo = new IngresarCodigo(cuenta);
                    ingresarCodigo.Show();
                    this.Close();
                }
            }
            catch (System.ServiceModel.EndpointNotFoundException)
            {
                MessageBox.Show(Properties.Resources.errorConexionServidor, Properties.Resources.tituloErrorConexion, MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            if (respuesta == (int)EstadoDeOperacion.JugadorEncontrado)
            {
                string usuarioRepetido = Properties.Resources.usuarioRepetido;
                MessageBox.Show(usuarioRepetido);
                return;
            }
            if (respuesta == (int)EstadoDeOperacion.CuentaEncontrada)
            {
                string correoRepetido = Properties.Resources.correoRepetido;
                MessageBox.Show(correoRepetido);
                return;
            }
            if (respuesta == (int)EstadoDeOperacion.ErrorConexionBD || respuesta == (int)EstadoDeOperacion.Excepcion)
            {
                MessageBox.Show(Properties.Resources.errorConexionBaseDatos, Properties.Resources.tituloErrorConexion, MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private void Boton_Salir_Click(object sender, RoutedEventArgs e)
        {
            sonidoBoton.Play();
            ServicioErstick2.ControlCuentaClient cliente = new ServicioErstick2.ControlCuentaClient();

            try
            {
                jugador = cliente.CerrarSesion(jugador);
            }
            catch (System.ServiceModel.EndpointNotFoundException)
            {
                MessageBox.Show(Properties.Resources.errorConexionServidor, Properties.Resources.tituloErrorConexion, MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            if (jugador != null)
            {
                if (jugador.Apodo.Equals(ERRORBD))
                {
                    MessageBox.Show(Properties.Resources.errorConexionBaseDatos, Properties.Resources.tituloErrorConexion, MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                if (jugador.Apodo.Equals(ERRORCERRAR))
                {
                    MessageBox.Show(Properties.Resources.errorUsuarioDesconectado, Properties.Resources.tituloErrorConexion, MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                else
                {
                    Login Login = new Login();
                    Login.Show();
                    this.Close();
                    musicaFondo.Stop();
                }
            }
            else
            {
                MessageBox.Show(Properties.Resources.errorUsuarioDesconectado);
            }
        }