Exemplo n.º 1
0
        private void RegisterAccount(PlayerDTO newPlayer)
        {
            SetEnableInterfaceElements(false);
            SignUpLoadingScreen suls = new SignUpLoadingScreen(newPlayer);

            if (suls.ShowDialog() == DialogResult.OK)
            {
                Close();
                return;
            }
            SetEnableInterfaceElements(true);
        }
        public void Register(SignUpLoadingScreen signUpLoadingScreen, PlayerDTO account)
        {
            try
            {
                bool waiting = false;

                Player newPlayer = null;

                ClientServiceProvider csp = new ClientServiceProvider(
                    NetworkObjectParameters.LoginServerInformation.ServerPublicAddress,
                    NetworkObjectParameters.LoginServerInformation.ServerPort,
                    NetworkObjectParameters.LoginServerBufferSize,
                    (serviceProvider, message) =>
                {
                    newPlayer = ObjectWrapper.Deserialize <Player>(message[1]);
                    waiting   = true;
                });
                csp.OnFailToEstabilishConnection += signUpLoadingScreen.OnFailToStablishConnection;

                csp.StartOperation();
                csp.RequestQueue.Enqueue(NetworkObjectParameters.LoginServerAccountCreationRequest, account);

                while (!waiting)
                {
                    Thread.Sleep(100);
                }

                csp.StopOperation();

                if (newPlayer == null)
                {
                    //Unnable to create player (unknown reason)
                    signUpLoadingScreen.OnFailToCreateAccount();
                    return;
                }

                string errorMessage = "";

                //Invalid Nickname
                if (newPlayer.Nickname == null)
                {
                    errorMessage += Language.RegisterFailureNickname;
                }

                //Invalid Email
                if (newPlayer.Email == null)
                {
                    errorMessage += Language.RegisterFailureEmail;
                }

                //Fail
                if (errorMessage.Length > 0)
                {
                    signUpLoadingScreen.OnFailToCreateAccount();
                    return;
                }

                //Success
                signUpLoadingScreen.OnCreateAccount();
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Ex: {ex.Message}");
            }
        }
 public void PrepareRegistrationThread(SignUpLoadingScreen signUpLoadingForm, PlayerDTO account)
 {
     RequestThread = new Thread(() => Register(signUpLoadingForm, account));
     RequestThread.IsBackground = true;
     RequestThread.Start();
 }