static void Main(string[] args) { while (true) { String typed = Console.ReadLine(); //if ping query if (typed == "ping") { long actualTime = DateTime.UtcNow.Ticks; ClientPacketPing clientPing = new ClientPacketPing(actualTime); Packet answer = SendPacket(NetworkHelper.SerializePacket(clientPing)); Console.WriteLine("Answer:" + answer); ServerPacketPing serverPing = answer as ServerPacketPing; if (serverPing == null) { break; } Console.WriteLine("Packet infos: " + serverPing.PacketSendTime); long answerTime = serverPing.PacketSendTime; Console.WriteLine("Ping : " + ((answerTime - actualTime) / 1000) + " ticks"); } if (typed == "user") { PLFUser newUser = new PLFUser(); newUser.UserNickName = "UserTest"; newUser.UserName = "******"; newUser.UserSurname = "UserTest Surname"; newUser.UserEMail = "*****@*****.**"; ClientPacketUserRegister clientPacketUserRegister = new ClientPacketUserRegister(newUser, "mdp"); Packet answer = SendPacket(NetworkHelper.SerializePacket(clientPacketUserRegister)); Console.WriteLine("Answer:" + answer); ServerPacketUserRegister serverPacketUserRegister = answer as ServerPacketUserRegister; if (serverPacketUserRegister == null) { break; } int userID = serverPacketUserRegister.UserID; Console.WriteLine( $"Register: {serverPacketUserRegister.RegisterSuccess} - {userID} - {serverPacketUserRegister.ErrorMessage}"); } System.Threading.Thread.Sleep(1000); Console.ReadKey(); Console.Clear(); } }
/// <summary> /// Registers the user. /// </summary> /// <returns>The user.</returns> /// <param name="user">User.</param> /// <param name="userPassword">User password.</param> public static ServerPacketUserRegister RegisterUser(PLFUser user, String userPassword) { //hash user password String hashPassword = userPassword.HashSHA256(); //new user register packet ClientPacketUserRegister clientPacketUserRegister = new ClientPacketUserRegister(user, hashPassword); //send packet to server ServerPacketUserRegister serverPacketUserRegister = TCPClient.SendPacket(clientPacketUserRegister) as ServerPacketUserRegister; //if no answer if (serverPacketUserRegister == null) { return(new ServerPacketUserRegister(false, -1, NetworkError.SERVER_UNAVAILABLE)); } return(serverPacketUserRegister); }
public override Packet OnPacketReceive(Packet receivedPacket) { //get packet ClientPacketUserRegister clientPacketUserRegister = receivedPacket as ClientPacketUserRegister; ConsoleHelper.Write("Receive - ClientPacketUserRegister"); //read packet infos PLFUser newUser = clientPacketUserRegister.User; String userPassword = clientPacketUserRegister.UserPassword.ToSQL(); String userSecretKey = KeyHelper.CreateRandomKey(); //insert new profile into DB command MySqlCommand registerNewUserCommand = new MySqlCommand(); registerNewUserCommand.Connection = Program.mySQLManager.MySQLConnection.MysqlConnection; registerNewUserCommand.CommandText = //register profile $"INSERT INTO `T_User`(`userPassword`, `userNick`, `userName`, `userSurname`, `userEmail`) VALUES " + $"('{userPassword}','{newUser.UserNickName.ToSQL()}','{newUser.UserName.ToSQL()}','{newUser.UserSurname.ToSQL()}','{newUser.UserEMail.ToSQL()}');" + //register key $"INSERT INTO `T_RegisterKey`(`regUserMail`, `regKey`, `regKeyDeliver`) VALUES ('{newUser.UserEMail}','{userSecretKey}','{DateTime.Now.Ticks}');" + //get user id $"SELECT LAST_INSERT_ID()"; MySqlDataReader mysqlDataReader = null; //command reader ServerPacketUserRegister serverPacketUserRegister; //register packet answer try { int userID = 0; //Execute reader mysqlDataReader = registerNewUserCommand.ExecuteReader(); //open reader and read ID while (mysqlDataReader.Read()) { userID = mysqlDataReader.GetInt32(0); } //new answer, register success serverPacketUserRegister = new ServerPacketUserRegister(true, userID, NetworkError.NONE); //send confirmation mail MailHelper.SendRegisterConfirmationMail(newUser, userSecretKey); } catch (MySqlException e) { //write sql error Console.WriteLine(e.Number + " - " + e.Message); NetworkError networkError; //switch between sql errors switch (e.Number) { case 1062: networkError = NetworkError.SQL_USER_EXIST; break; case 1064: networkError = NetworkError.GLOBAL_UNKNOWN; break; default: networkError = NetworkError.GLOBAL_UNKNOWN; break; } //new answer, register fail serverPacketUserRegister = new ServerPacketUserRegister(false, -1, networkError); } catch (Exception e) { //new answer, register fail serverPacketUserRegister = new ServerPacketUserRegister(false, -1, NetworkError.GLOBAL_UNKNOWN); Console.WriteLine(e.Message); } //close reader if (mysqlDataReader != null && !mysqlDataReader.IsClosed) { mysqlDataReader.Close(); } ConsoleHelper.Write("Send - ServerPacketUserRegister"); return(serverPacketUserRegister); }