Esempio n. 1
0
        /// <summary>
        /// REgistra un nuevo jugador en el sistema
        /// </summary>
        /// <param name="jugador">Jugador que se desa registrar</param>
        public void RegistrarJugador(Jugador jugador)
        {
            ResultadoRegistro resultadoRegistro;

            if (administradorDatosJugador.ExisteNickname(jugador.Nickname))
            {
                resultadoRegistro = ResultadoRegistro.UsuarioYaExiste;
            }
            else if (administradorDatosJugador.ExisteCorreoElectronico(jugador.CorreoElectronico))
            {
                resultadoRegistro = ResultadoRegistro.CorreoYaExiste;
            }
            else
            {
                string claveValidacion = GeneradorClave.GenerarClaveValidacion();
                jugador.ClaveValidacion = claveValidacion;

                try
                {
                    adminCorreoElectronico.EnviarClaveValidacion(jugador);
                }
                catch (SmtpException)
                {
                    throw new SmtpException();
                }

                jugadoresARegistrar.Add(ObtenerCallbackActual, jugador);
                resultadoRegistro = ResultadoRegistro.RegistroExitoso;
            }

            ObtenerCallbackActual.NotificarRegistro(resultadoRegistro);
        }
        /// <summary>
        /// Lógica para enviar la clave recuperación de cuenta.
        /// </summary>
        /// <param name="infoJugador">Jugador al que se enviará la clave</param>
        /// <exception cref="SmtpException"></exception>
        public void EnviarClaveRecuperacion(Jugador infoJugador)
        {
            bool ClaveEnviada;

            if (administradorDatosJugador.ExisteCorreoElectronico(infoJugador.CorreoElectronico))
            {
                try
                {
                    string claveValidacion = GeneradorClave.GenerarClaveValidacion();

                    adminCorreoElectronico.EnviarClaveRecuperacion(infoJugador.CorreoElectronico, claveValidacion);
                    infoJugador.ClaveValidacion = claveValidacion;
                    jugadoresARecuperar.Add(ObtenerCallbackRecuperacion, infoJugador);

                    ClaveEnviada = true;
                }
                catch (SmtpException)
                {
                    throw new SmtpException();
                }
            }
            else
            {
                ClaveEnviada = false;
            }

            ObtenerCallbackRecuperacion.NotificarEnvioClave(ClaveEnviada);
        }