/// <summary> /// Implementación de Contrato para obtener datos de un jugador /// </summary> /// <param name="actualPlayer"></param> public void GetActualPlayer(Jugador actualPlayer) { DataObtainedResult dataObtainedResult = DataObtainedResult.ErrorObtainingData; DataAccess.Jugador searchedPlayer = jugadorDataManager.GetPlayerByNickname(actualPlayer.Apodo); if (searchedPlayer != null) { Dominio.Jugador domainSearchedPlayer = new Dominio.Jugador { IdJugador = searchedPlayer.idJugador, Apodo = searchedPlayer.apodo, CorreoElectronico = searchedPlayer.correoElectronico, Status = searchedPlayer.status, PreguntaRecuperacion = searchedPlayer.preguntaRecuperacion, IdLenguaje = searchedPlayer.idioma }; dataObtainedResult = DataObtainedResult.DataObtained; PlayerCallback.SendActualPlayer(dataObtainedResult, domainSearchedPlayer); } else { Dominio.Jugador emptyPlayer = new Jugador(); PlayerCallback.SendActualPlayer(dataObtainedResult, emptyPlayer); } }
private void SaveNewPlayer(Jugador player) { SaveResult saveResult; DataAccess.Jugador newPlayer = new DataAccess.Jugador { apodo = player.Apodo, contrasenia = hashText.TextToHash(player.Contrasenia), correoElectronico = player.CorreoElectronico, status = ACTIVATION_STATE, respuestaConfirmacion = player.RespuestaConfirmacion, preguntaRecuperacion = player.PreguntaRecuperacion, pinConfirmacion = player.PinConfirmacion, idCreador = 1, idioma = player.IdLenguaje }; JugadorDataManager jugadorManager = new JugadorDataManager(); int columnasAfectadas = jugadorManager.SaveNewPlayer(newPlayer); RankingDataManager rankingData = new RankingDataManager(); rankingData.NewPlayerRank(newPlayer); if (columnasAfectadas > 0) { saveResult = SaveResult.JugadorGuardado; PlayerCallback.GetSaveResult(saveResult, player); } else { saveResult = SaveResult.ErrorGuardado; PlayerCallback.GetSaveResult(saveResult, player); } }
/// <summary> /// Implementación de Contrato para iniciar sesion como Jugador /// </summary> /// <param name="player"></param> public void LoginPlayer(Jugador player) { LoginResult result = LoginResult.NoExisteJugador; JugadorDataManager jugadorManager = new JugadorDataManager(); if (jugadorManager.CheckNickname(player.Apodo)) { if (jugadorManager.CheckState(player.Apodo)) { if (jugadorManager.EsPasswordCorrecto(player.Contrasenia, player.Apodo)) { DataAccess.Jugador searchedPlayer = jugadorManager.GetPlayerByNickname(player.Apodo); if (!playersLoggedIn.ContainsKey(searchedPlayer.apodo)) { result = LoginResult.ExisteJugadorVerificado; playersLoggedIn.Add(searchedPlayer.apodo, PlayerCallback); player.Apodo = searchedPlayer.apodo; player.IdLenguaje = searchedPlayer.idioma; player.IdJugador = searchedPlayer.idJugador; player.Contrasenia = searchedPlayer.contrasenia; player.CorreoElectronico = searchedPlayer.correoElectronico; player.PreguntaRecuperacion = searchedPlayer.preguntaRecuperacion; PlayerCallback.GetPlayerLoginResult(result, player); } else { result = LoginResult.LOGGED_PLAYER; PlayerCallback.GetPlayerLoginResult(result, player); } } else { result = LoginResult.PasswordIncorrecto; PlayerCallback.GetPlayerLoginResult(result, player); } } else { CheckBan(player); } } else { PlayerCallback.GetPlayerLoginResult(result, player); } }
/// <summary> /// Implementación de Contrato para enviar email de solicitud de cambio de contraseña a un jugador /// </summary> /// <param name="actualNickname"></param> /// <exception> /// Este metodo puede retornar una excepcion tipo SmtpException /// </exception> public void PasswordForgotMail(string actualNickname) { JugadorDataManager jugadorManager = new JugadorDataManager(); MailResult mailSuccesResult; string securityQuestion = " "; if (jugadorManager.CheckNickname(actualNickname)) { DataAccess.Jugador player = jugadorManager.ChangePinByNickname(actualNickname); securityQuestion = player.preguntaRecuperacion; System.Net.Mail.MailMessage mailMesagge = new System.Net.Mail.MailMessage(); mailMesagge.To.Add(player.correoElectronico); mailMesagge.Subject = "Recuperacion de cuenta del jugador " + player.apodo; mailMesagge.Body = "Hola " + player.apodo + " has solicitado una recuperacion de cuenta, " + "el código de verificación para cambiar tu contraseña es el siguiente: " + player.pinConfirmacion; mailMesagge.From = new System.Net.Mail.MailAddress("*****@*****.**", "Checkers Game Proyect"); System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient { Credentials = new System.Net.NetworkCredential(mailUser, mailPassword), Port = 587, EnableSsl = true, Host = "smtp.gmail.com", }; try { client.Send(mailMesagge); mailSuccesResult = MailResult.MailSend; PlayerCallback.GetMailResult(mailSuccesResult, actualNickname, securityQuestion); } catch (System.Net.Mail.SmtpException) { mailSuccesResult = MailResult.SendError; PlayerCallback.GetMailResult(mailSuccesResult, actualNickname, securityQuestion); } } else { mailSuccesResult = MailResult.UnknownPlayer; PlayerCallback.GetMailResult(mailSuccesResult, actualNickname, securityQuestion); } }