private static void OnMatchFound(GameServerInfo match, PlayerManagerClient pm) { print("match found " + match.ip + " " + match.port); NetworkClient gameClient = new NetworkClient(); gameClient.RegisterHandler(MsgType.Connect, x => { print("connected to gameServer"); gameClient.RegisterHandler((short)CustomMessageTypes.ApprovalResponse, netMsg => { IntegerMessage msg = netMsg.ReadMessage <IntegerMessage>(); bool isApproved = msg.value == 1; print("approval status " + isApproved); if (!isApproved) { gameClient.Disconnect(); } else { //Start playing , //Teel server i'm ready and addPlayerRequest if needed //ClientScene.AddPlayer() // or //ClientScene.Ready(); } }); gameClient.Send((short)CustomMessageTypes.RequestPlayerApproval, new IntegerMessage(pm.myInfo.gameServerID)); }); gameClient.Connect(match.ip, match.port); }
private void DeleteAccountPlayer(object sender, RoutedEventArgs routedEventArgs) { try { InstanceContext instanceContext = new InstanceContext(this); PlayerManagerClient playerManager = new PlayerManagerClient(instanceContext); playerManager.DeleteAccountPlayer(player.NickName); bool isDeletePlayer = responseBoolean; if (isDeletePlayer) { OpenMessageBox(Properties.Resources.DeleteAccountMessage, Properties.Resources.DeleteAccountMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Information); MainWindow main = new MainWindow(); main.Show(); this.Close(); } else { OpenMessageBox(Properties.Resources.NoDeleteAccountMessage, Properties.Resources.DeleteAccountMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Error); } } catch (EndpointNotFoundException exception) { TelegramBot.SendToTelegram(exception); LogException.Log(this, exception); LogException.ErrorConnectionService(); } }
private void Send(object sender, RoutedEventArgs eventSend) { if (ValidatePassword() && ValidateCode()) { try { InstanceContext instanceContext = new InstanceContext(this); PlayerManagerClient changePassword = new PlayerManagerClient(instanceContext); changePassword.ChangePassword(emailAccount, Security.Encrypt(pbNewPassword.Password)); if (response) { System.Windows.Forms.MessageBox.Show(Properties.Resources.PasswordChangedDetails, Properties.Resources.PasswordChanged , MessageBoxButtons.OK, MessageBoxIcon.Information); } else { System.Windows.Forms.MessageBox.Show(Properties.Resources.ErrorDataBaseDetails, Properties.Resources.ErrorDataBase , MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (EndpointNotFoundException exception) { TelegramBot.SendToTelegram(exception); LogException.Log(this, exception); LogException.ErrorConnectionService(); } MainWindow main = new MainWindow(); main.Show(); this.Close(); } }
private void SendRecoveryCode(object sender, RoutedEventArgs eventSendCode) { if (ValidateEmail() && SearchEmail()) { try { InstanceContext instanceContext = new InstanceContext(this); PlayerManagerClient sendCode = new PlayerManagerClient(instanceContext); int code = ValidationData.GenerateConfirmationCode(); sendCode.SendEmail(tbEmail.Text, code); RecoverAccount recover = new RecoverAccount(); recover.EmailReceived(tbEmail.Text); recover.CodeReceived(code); recover.Show(); this.Close(); } catch (EndpointNotFoundException exception) { TelegramBot.SendToTelegram(exception); LogException.Log(this, exception); LogException.ErrorConnectionService(); CloseWindow(); } } }
//Work in progress private void Btn_RegisterNewUser_Click(object sender, RoutedEventArgs e) { InstanceContext instanceContext = new InstanceContext(this); Proxy.PlayerManagerClient client = new PlayerManagerClient(instanceContext); Player newPlayer = new Player(); newPlayer.username = tb_Username.Text; newPlayer.password = pb_Password.Password; newPlayer.name = tb_Name.Text; newPlayer.lastnames = tb_LastName.Text; //newPlayer.avatarImage = newPlayer.isBanned = false; newPlayer.verificationToken = ""; newPlayer.isLogged = false; newPlayer.isVerified = false; newPlayer.email = tb_Email.Text; try { client.RegisterPlayer(newPlayer); } catch (EndpointNotFoundException exception) { Console.WriteLine("No se pudo realizar la conexión con el servidor \n" + exception); lb_RegistrationError.Content = "Error en la conexión con el servidor"; } catch (TimeoutException exception) { Console.WriteLine("No se pudo realizar la conexion con el servidor por tiempo \n" + exception); lb_RegistrationError.Content = "Error en la conexion con el servidor"; } }
private bool SearchEmail() { bool emailExist = false; try { InstanceContext instanceContext = new InstanceContext(this); PlayerManagerClient searchEmail = new PlayerManagerClient(instanceContext); searchEmail.SearchEmailPlayer(tbEmail.Text); if (responseCallback) { emailExist = true; } else { tbEmail.BorderBrush = Brushes.Red; tbValidateEmail.BorderBrush = Brushes.Red; System.Windows.Forms.MessageBox.Show(Properties.Resources.EmailNotFoundDetails, Properties.Resources.EmailNotFound , MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } catch (EndpointNotFoundException exception) { TelegramBot.SendToTelegram(exception); LogException.Log(this, exception); LogException.ErrorConnectionService(); CloseWindow(); } return(emailExist); }
private void LogIn(object sender, RoutedEventArgs eventLog) { if (ValidateCredential()) { string email = tbEmail.Text; string password = Security.Encrypt(pbPassword.Password); try { InstanceContext instanceContext = new InstanceContext(this); PlayerManagerClient logIn = new PlayerManagerClient(instanceContext); logIn.LogIn(email, password); if (responseGeneral) { tbEmail.BorderBrush = Brushes.LightGreen; pbPassword.BorderBrush = Brushes.LightGreen; Lobby lobby = new Lobby(); lobby.EmailReceived(email); lobby.ColocateBestScores(); lobby.ColocatePersonalInformation(); lobby.Show(); this.Close(); } else { WrongCredentials(); } } catch (EndpointNotFoundException exception) { TelegramBot.SendToTelegram(exception); LogException.Log(this, exception); LogException.ErrorConnectionService(); } } }
/// <summary> /// Method to send the confirmation code /// </summary> public void SendConfirmationCodePlayer() { InstanceContext instanceContext = new InstanceContext(this); PlayerManagerClient sendConfirmation = new PlayerManagerClient(instanceContext); sendConfirmation.SendEmail(account.Email, account.ConfirmationCode); }
/// <summary> /// Crea una solicitud al servidor para terminar sesion de un <c>Jugador</c> y cerrar conexión al servidor /// </summary> /// <param name="playerNickname"></param> /// <exception> /// Esta excepcion puede retornar una excepcion tipo EndpointNotFoundException /// </exception> public static void EndSession(string playerNickname) { InstanceContext instanceContext = new InstanceContext(new PlayerCallbackHandler()); PlayerManagerClient server = new PlayerManagerClient(instanceContext); try { server.CloseSession(playerNickname); } catch (EndpointNotFoundException) { MessageBox.Show("El servidor ya no esta disponible"); } }
/// <summary> /// Crea una solicitud al servidor para verificar el numero PIN ingresado para habilitar un cambio de contraseña /// </summary> /// <param name="playerNickname"></param> /// <param name="playerPin"></param> /// <param name="answerText"></param> /// <exception> /// Esta excepcion puede retornar una excepcion tipo EndpointNotFoundException /// </exception> public static void VerifyPin(string playerNickname, string playerPin, string answerText) { InstanceContext instanceContext = new InstanceContext(new PlayerCallbackHandler()); PlayerManagerClient server = new PlayerManagerClient(instanceContext); try { server.VerifyPin(playerNickname, playerPin, answerText); } catch (EndpointNotFoundException) { MessageBox.Show("No se ha podido conectar a la Base de datos, intentar mas tarde"); } }
/// <summary> /// Crea una solicitud al servidor para verificar un <c>Jugador</c> durante el proceso de registrar una cuenta nueva /// </summary> /// <param name="jugador"></param> /// <exception> /// Esta excepcion puede retornar una excepcion tipo EndpointNotFoundException /// </exception> public static void VerifyPlayer(Jugador jugador) { InstanceContext instanceContext = new InstanceContext(new PlayerCallbackHandler()); PlayerManagerClient server = new PlayerManagerClient(instanceContext); try { server.VerifyPlayer(jugador); } catch (EndpointNotFoundException) { MessageBox.Show("No se ha podido conectar a la Base de datos, intentar mas tarde"); } }
private void AcceptCodeConfirmation(object sender, RoutedEventArgs routedEventArgs) { imgErrorCodeConfirmation.Visibility = Visibility.Hidden; tbConfirmationCode.BorderBrush = Brushes.Transparent; bool isValidConfirmationCode; isValidConfirmationCode = ValidationData.ValidateConfirmationCode(tbConfirmationCode.Text); if (isValidConfirmationCode) { bool isEqualConfirmationCode = ValidateEqualsConfirmationCode(); if (isEqualConfirmationCode) { tbConfirmationCode.BorderBrush = Brushes.Green; try { InstanceContext instanceContext = new InstanceContext(this); PlayerManagerClient registry = new PlayerManagerClient(instanceContext); registry.Register(account, accountPlayer); if (responseConfirmation) { OpenMessageBox(Properties.Resources.AccountRegistrationMessage, Properties.Resources.AccountRegistrationMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Information); } else { OpenMessageBox(Properties.Resources.NoAccountRegisteredMessage, Properties.Resources.AccountRegistrationMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Error); } } catch (EndpointNotFoundException exception) { TelegramBot.SendToTelegram(exception); LogException.Log(this, exception); LogException.ErrorConnectionService(); } MainWindow mainWindow = new MainWindow(); mainWindow.Show(); this.Close(); } else { tbConfirmationCode.BorderBrush = Brushes.Red; OpenMessageBox(Properties.Resources.ErrorEqualConfirmationCodeMessage, Properties.Resources.IncorrectCodeMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Warning); } } else { tbConfirmationCode.BorderBrush = Brushes.Red; imgErrorCodeConfirmation.Visibility = Visibility.Visible; OpenMessageBox(Properties.Resources.IncorrectCodeMessage, Properties.Resources.IncorrectCodeMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Warning); } }
/// <summary> /// Crea una solicitud al servidor para enviar un correo con codigo de verificacion PIN para cambiar contraseña /// de un <c>Jugador</c> /// </summary> /// <param name="playerNickname"></param> /// <exception> /// Esta excepcion puede retornar una excepcion tipo EndpointNotFoundException /// </exception> public static void ObtainMailPassword(string playerNickname) { InstanceContext instanceContext = new InstanceContext(new PlayerCallbackHandler()); PlayerManagerClient server = new PlayerManagerClient(instanceContext); try { server.PasswordForgotMail(playerNickname); } catch (EndpointNotFoundException) { MessageBox.Show("No se ha podido conectar a la Base de datos, intentar mas tarde"); } }
public void GetMailResult_ReturnSendError_MailResult() { try { var baseAddress = new Uri("net.tcp://*****:*****@gmail.com", PinConfirmacion = "1234", PreguntaRecuperacion = "testquestion?", RespuestaConfirmacion = "testanswer", IdCreador = 1, IdLenguaje = 1, Status = "No Verificado" }; playerClient.SendMail(testPlayer); PlayerCallbackHandler playerHandler = new PlayerCallbackHandler(); MailResult result = playerHandler.mailResult; Assert.AreEqual(result, MailResult.SendError); } catch (EndpointNotFoundException) { playerClient.Abort(); } catch (CommunicationException) { playerClient.Abort(); } }
/// <summary> /// Crea una solicitud al servidor para actualizar la contraseña asociada a un <c>Jugador</c> /// </summary> /// <param name="player"></param> /// <exception> /// Esta excepcion puede retornar una excepcion tipo EndpointNotFoundException /// </exception> public static void ChangePassword(Jugador player) { InstanceContext instanceContext = new InstanceContext(new PlayerCallbackHandler()); PlayerManagerClient server = new PlayerManagerClient(instanceContext); try { server.ChangePassword(player.Apodo, player.Contrasenia); } catch (EndpointNotFoundException) { MessageBox.Show("No se ha podido conectar a la Base de datos, intentar mas tarde"); } }
private void ChangeAccountPassword(object sender, RoutedEventArgs routedEventArgs) { imgErrorConfirmationPassword.Visibility = Visibility.Hidden; imgErrorCurrentPassword.Visibility = Visibility.Hidden; imgErrorNewPassword.Visibility = Visibility.Hidden; pbConfirmationPassword.BorderBrush = Brushes.Transparent; pbPassword.BorderBrush = Brushes.Transparent; pbNewPassword.BorderBrush = Brushes.Transparent; isValidNewPassword = false; ValidatePassword(); ValidateNewPassword(); if (isValidPassword && isValidNewPassword) { string passwordEncrypt = Security.Encrypt(pbNewPassword.Password); try { InstanceContext instanceContext = new InstanceContext(this); PlayerManagerClient playerManager = new PlayerManagerClient(instanceContext); playerManager.ChangePassword(account.Email, passwordEncrypt); if (responseBoolean) { OpenMessageBox(Properties.Resources.ChangePasswordMessage, Properties.Resources.ChangePasswordMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Information); } else { OpenMessageBox(Properties.Resources.NoChangePasswordMessage, Properties.Resources.ChangePasswordMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Error); } ModifyAccount modifyAccount = new ModifyAccount(); modifyAccount.ObtainAccount(); modifyAccount.Show(); this.Close(); } catch (EndpointNotFoundException exception) { TelegramBot.SendToTelegram(exception); LogException.Log(this, exception); LogException.ErrorConnectionService(); } } else { OpenMessageBox(Properties.Resources.IncorrectDataMessage, Properties.Resources.IncorrectDataMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Warning); } }
public void SendActualPlayer_ReturnErrorObtainingData_DataObtainedResult() { try { var baseAddress = new Uri("net.tcp://localhost:8090/Contratos"); serviceHost = new ServiceHost(typeof(Contratos.MainService), baseAddress); System.ServiceModel.Channels.Binding binding = new NetTcpBinding(); var address = new EndpointAddress("net.tcp://localhost:8090/ServerTests"); var endpoint = serviceHost .AddServiceEndpoint(typeof(Contratos.IPlayerManager), binding, address.Uri); var smb = new ServiceMetadataBehavior { HttpGetEnabled = false }; serviceHost.Description.Behaviors.Add(smb); InstanceContext instanceContext = new InstanceContext(new PlayerCallbackHandler()); playerClient = new PlayerManagerClient(instanceContext); endpoint.Name = playerClient.Endpoint.Name; serviceHost.Open(); serviceHost.Close(); Jugador testPlayer = new Jugador { Apodo = "savetestplayer", Contrasenia = "password123", }; playerClient.GetActualPlayer(testPlayer); PlayerCallbackHandler playerHandler = new PlayerCallbackHandler(); DataObtainedResult result = playerHandler.dataObtainedResult; Assert.AreEqual(result, DataObtainedResult.ErrorObtainingData); } catch (EndpointNotFoundException) { playerClient.Abort(); } catch (CommunicationException) { playerClient.Abort(); } }
public void GetLoginResult_ReturnLOGGEDPLAYER_LoginResult() { try { var baseAddress = new Uri("net.tcp://localhost:8090/Contratos"); serviceHost = new ServiceHost(typeof(Contratos.MainService), baseAddress); System.ServiceModel.Channels.Binding binding = new NetTcpBinding(); var address = new EndpointAddress("net.tcp://localhost:8090/ServerTests"); var endpoint = serviceHost .AddServiceEndpoint(typeof(Contratos.IPlayerManager), binding, address.Uri); var smb = new ServiceMetadataBehavior { HttpGetEnabled = false }; serviceHost.Description.Behaviors.Add(smb); InstanceContext instanceContext = new InstanceContext(new PlayerCallbackHandler()); playerClient = new PlayerManagerClient(instanceContext); endpoint.Name = playerClient.Endpoint.Name; serviceHost.Open(); Jugador testPlayer = new Jugador { Apodo = "pklove3456", Contrasenia = "bobcholo1" }; playerClient.Login(testPlayer); playerClient.Login(testPlayer); PlayerCallbackHandler playerHandler = new PlayerCallbackHandler(); LoginResult result = playerHandler.loginResult; Assert.AreEqual(result, LoginResult.LOGGED_PLAYER); } catch (EndpointNotFoundException) { playerClient.Abort(); } catch (CommunicationException) { playerClient.Abort(); } }
private void RegisterPlayer(object sender, RoutedEventArgs routedEventArgs) { bool isValidData = ValidateDataPlaye(); if (isValidData) { string name = tbName.Text; string lastName = tbLastName.Text; string nickname = tbNickname.Text; string email = tbEmail.Text; string password = Security.Encrypt(pbPassword.Password); int codeConfirmation = ValidationData.GenerateConfirmationCode(); ServiceAccount account = new ServiceAccount(); account.PasswordAccount = password; account.Email = email; account.ConfirmationCode = codeConfirmation; ServicePlayer accountPlayer = new ServicePlayer(); accountPlayer.NickName = nickname; accountPlayer.NamePlayer = ValidationData.DeleteSpaceWord(name); accountPlayer.LastName = ValidationData.DeleteSpaceWord(lastName); accountPlayer.StatusPlayer = "Active"; accountPlayer.ScoreObtained = 0; try { InstanceContext instanceContext = new InstanceContext(this); PlayerManagerClient validatePlayer = new PlayerManagerClient(instanceContext); validatePlayer.SearchNicknamePlayer(nickname); bool isValidRepeatNickname = responseBoolean; validatePlayer.SearchEmailPlayer(email); bool isValidRepeatEmail = responseBoolean; if (isValidRepeatEmail && isValidRepeatNickname) { OpenMessageBox(Properties.Resources.RegisteredEmailNicknameMessage, Properties.Resources.RepeatedDataMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Warning); } else { if (isValidRepeatEmail) { OpenMessageBox(Properties.Resources.RegisteredEmailMessage, Properties.Resources.RepeatedDataMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Warning); } else { if (isValidRepeatNickname) { OpenMessageBox(Properties.Resources.RegisteredNicknameMessage, Properties.Resources.RepeatedDataMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Warning); } else { EmailConfirmation emailConfirmation = new EmailConfirmation(); emailConfirmation.AccountReceived(account); emailConfirmation.PlayerReceived(accountPlayer); emailConfirmation.SendConfirmationCodePlayer(); emailConfirmation.Show(); this.Close(); } } } } catch (EndpointNotFoundException exception) { TelegramBot.SendToTelegram(exception); LogException.Log(this, exception); LogException.ErrorConnectionService(); } } else { OpenMessageBox(Properties.Resources.IncorrectDataMessage, Properties.Resources.IncorrectDataMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Warning); } }
private void Modify(object sender, RoutedEventArgs routedEventArgs) { playerEdit = new ServicePlayer(); emailEdit = account.Email; ValidateDataAccount(); if (isUpdateData || !emailEdit.Equals(emailAccount)) { if (isValidData) { try { InstanceContext instanceContext = new InstanceContext(this); PlayerManagerClient playerManager = new PlayerManagerClient(instanceContext); bool isValidRepeatEmail = false; if (isUpdateEmail) { playerManager.SearchRepeatEmailAccount(emailEdit, account.IdAccount); isValidRepeatEmail = responseBoolean; } bool updateEmail = false; if (isUpdateEmail && !isValidRepeatEmail) { playerManager.UpdateEmail(emailEdit, account.IdAccount); updateEmail = responseBoolean; } bool updatePlayer = false; if (isUpdateData) { playerManager.UpdatePlayer(player.NickName, playerEdit); updatePlayer = responseBoolean; } if (updatePlayer || updateEmail) { OpenMessageBox(Properties.Resources.ModifyAccountMessage, Properties.Resources.ModifyAccountMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Information); } else { OpenMessageBox(Properties.Resources.NoModifyAccountMessage, Properties.Resources.ModifyAccountMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Error); } Lobby lobby = new Lobby(); if (isUpdateEmail) { lobby.EmailReceived(emailEdit); } lobby.ColocateBestScores(); lobby.ColocatePersonalInformation(); lobby.Show(); this.Close(); } catch (EndpointNotFoundException exception) { TelegramBot.SendToTelegram(exception); LogException.Log(this, exception); LogException.ErrorConnectionService(); } } else { OpenMessageBox(Properties.Resources.IncorrectDataMessage, Properties.Resources.IncorrectCodeMessageTitle, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Warning); isUpdateData = false; } } else { OpenMessageBox(Properties.Resources.ModifyLeastDataMessage, Properties.Resources.ModifyLeastDataMessageTile, (MessageBoxImage)System.Windows.Forms.MessageBoxIcon.Warning); } }