Beispiel #1
0
        /// <summary>
        /// Confirms the user account.
        /// </summary>
        /// <returns>The user account.</returns>
        /// <param name="user">User.</param>
        /// <param name="code">Code.</param>
        public static ServerPacketConfirmation ConfirmUserAccount(PLFUser user, String code)
        {
            ClientPacketUserActivateAccount clientPacketUserActivateAccount = new ClientPacketUserActivateAccount(user, code);

            ServerPacketConfirmation serverPacketConfirmation = TCPClient.SendPacket(clientPacketUserActivateAccount) as ServerPacketConfirmation;

            if (serverPacketConfirmation == null)
            {
                return(new ServerPacketConfirmation(false, NetworkError.SERVER_UNAVAILABLE));
            }

            return(serverPacketConfirmation);
        }
Beispiel #2
0
        public override Packet OnPacketReceive(Packet receivedPacket)
        {
            ClientPacketUserActivateAccount clientPacketUserActivateAccount = receivedPacket as ClientPacketUserActivateAccount;

            ConsoleHelper.Write("Receive - ClientPacketUserActivateAccount");

            PLFUser user    = clientPacketUserActivateAccount.User;
            String  userKey = clientPacketUserActivateAccount.UserCode.ToSQL();

            //insert new profile into DB
            MySqlCommand checkActivationCodeCommabd = new MySqlCommand();

            checkActivationCodeCommabd.Connection  = Program.mySQLManager.MySQLConnection.MysqlConnection;
            checkActivationCodeCommabd.CommandText =
                $"SELECT * FROM `T_RegisterKey` WHERE `regUserMail`='{user.UserEMail}' AND `regKey`='{userKey}'";

            MySqlDataReader mysqlDataReader = null;

            ServerPacketConfirmation serverPacketConfirmation;

            Boolean confirmationAllow = false;

            try
            {
                mysqlDataReader = checkActivationCodeCommabd.ExecuteReader();

                //open reader
                while (mysqlDataReader.Read())
                {
                    confirmationAllow = true;
                }

                if (confirmationAllow)
                {
                    serverPacketConfirmation = new ServerPacketConfirmation(true, NetworkError.NONE);
                    new Thread(() =>
                    {
                        Program.mailManager.SendMail(user.UserEMail, "PET LA FORME - Inscription",
                                                     $"Bonjour {user.UserName}! Votre compte a été confirmé avec succés ! Bonne journée !");
                    }
                               ).Start();
                }
                else
                {
                    serverPacketConfirmation = new ServerPacketConfirmation(false, NetworkError.SQL_USER_WRONG_ACCODE);
                }
            }
            catch (MySqlException e)
            {
                Console.WriteLine(e.Number + " - " + e.Message);
                NetworkError networkError;
                switch (e.Number)
                {
                case 1062:
                    networkError = NetworkError.SQL_USER_WRONG_ACCODE;
                    break;

                case 1064:
                    networkError = NetworkError.GLOBAL_UNKNOWN;
                    break;

                default:
                    networkError = NetworkError.GLOBAL_UNKNOWN;
                    break;
                }
                serverPacketConfirmation = new ServerPacketConfirmation(false, networkError);
            }
            catch (Exception e)
            {
                serverPacketConfirmation = new ServerPacketConfirmation(false, NetworkError.GLOBAL_UNKNOWN);
                Console.WriteLine(e.Message);
            }

            if (mysqlDataReader != null && !mysqlDataReader.IsClosed)
            {
                mysqlDataReader.Close();
            }

            if (confirmationAllow)
            {
                MySqlCommand activeAccountCommand = new MySqlCommand();
                activeAccountCommand.Connection  = Program.mySQLManager.MySQLConnection.MysqlConnection;
                activeAccountCommand.CommandText =
                    $"UPDATE `T_User` SET `userAccountActive`='1' WHERE `userID`='{user.ID}'";
                activeAccountCommand.ExecuteNonQuery();
            }

            ConsoleHelper.Write("Send - ServerPacketConfirmation");

            return(serverPacketConfirmation);
        }