Exemple #1
0
        private void RegisterBtn_Click(object sender, EventArgs e)
        {
            int creatUserInt = UserAcount.CreatAcount(userTxt.Text.Trim(), pwdTxt.Text.Trim());

            //注册是否成功的判断。0:失败,1:成功,2:用户名重复
            switch (creatUserInt)
            {
            case 0:
                MessageBox.Show("注册失败!请重试!");
                break;

            case 1:
                //触发注册成功事件
                MessageBox.Show("注册成功!");
                ClearInfo();
                RegisterSuccess?.Invoke(this, null);
                break;

            case 2:
                MessageBox.Show("用户名已存在!");
                ClearInfo();
                break;

            default:
                break;
            }
        }
 private Task Registered(string message)
 {
     if (debug)
     {
         Console.WriteLine($"OBSERVER: NetworkManagerClient Registered");
     }
     RegisterSuccess?.Invoke(this, message);
     return(Task.CompletedTask);
 }
Exemple #3
0
        private void handleLobby()
        {
            WL.RegisterWorld initPacket = new WL.RegisterWorld(Program.WorldName, Program.Password, Program.ID);
            stream.Write(initPacket.ToArray(), 0, initPacket.ToArray().Length);
            stream.Flush();
            byte[] message = new byte[4096];
            int    bytesRead;

            while (true)
            {
                bytesRead = 0;
                try
                {
                    bytesRead = stream.Read(message, 0, 4096);
                }
                catch
                {
                    break;
                }
                if (bytesRead == 0)
                {
                    break;
                }
                IPacket packet = null;
                switch (message[0])
                {
                case (byte)OpCodes.LW_REGISTER_SUCCESS:
                    packet = new RegisterSuccess();
                    break;

                case (byte)OpCodes.LW_ACCOUNT_ENTER:
                    packet = new AccountEnter();
                    break;
                }
                packet.Write(message, 1, bytesRead - 1);
                packet.Handle();
            }
            Log.Error("Lobby.Client", "Lobby Server disconnected! Reconnecting...");
            client.Close();
            stream.Dispose();
            try
            {
                client = new TcpClient();
                connect(address);
                stream = client.GetStream();
                Log.Succes("Lobby.Client", "Reconnected!");
                handleLobby();
            }
            catch (Exception e)
            {
                Log.Error("Lobby.Client", "Failed to reconnect due to following exception:\n\n");
                Console.WriteLine(e.ToString());
                return;
            }
        }
Exemple #4
0
        private async void RegisterBtn_Click(object sender, EventArgs e)
        {
            var passwordsMatch = CheckPasswordsMatch(passwordBox.Text, passwordRptBox.Text);
            var isNameUnique   = await CheckNameUniqueAsync(nameBox.Text);

            var errorMessage = new StringBuilder();

            if (nameBox.Text == string.Empty || passwordBox.Text == string.Empty)
            {
                errorMessage.Append("Field cannot be empty!\n");
            }

            if (!isNameUnique)
            {
                errorMessage.Append("Name already taken!\n");
                nameBox.Text = string.Empty;
            }

            if (!passwordsMatch)
            {
                errorMessage.Append("Passwords do not match!\n");
                passwordBox.Text    = string.Empty;
                passwordRptBox.Text = string.Empty;
            }

            if (errorMessage.Length == 0)
            {
                await CreateNewUserAsync(nameBox.Text, passwordBox.Text);

                MessageBox.Show("Registration successful!\nYou can log in now.", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information);
                RegisterSuccess?.Invoke(sender, EventArgs.Empty);
            }
            else
            {
                MessageBox.Show(errorMessage.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public async void Register()
        {
            Busy = true;

            if (string.IsNullOrEmpty(FirstName) || string.IsNullOrEmpty(LastName))
            {
                RegisterFailed?.Invoke(this, "First and Last Name are required.");

                Busy = false;
                return;
            }

            if (string.IsNullOrEmpty(Email))
            {
                RegisterFailed?.Invoke(this, "Email is required.");

                Busy = false;
                return;
            }

            if (string.IsNullOrEmpty(Password))
            {
                RegisterFailed?.Invoke(this, "Password is required.");

                Busy = false;
                return;
            }

            if (ConfirmPassword != Password)
            {
                RegisterFailed?.Invoke(this, "Password and Confirm Password must be the same.");

                Busy = false;
                return;
            }

            if (string.IsNullOrEmpty(Address.PlaceId))
            {
                RegisterFailed?.Invoke(this, "Address is required.");

                Busy = false;
                return;
            }

            var result =
                await
                Services.Host.AuthService.Register(FirstName, LastName, Email, Password, ConfirmPassword,
                                                   Address.PlaceId);

            if (result.Error)
            {
                if (result.ModelState == null)
                {
                    RegisterFailed?.Invoke(this,
                                           "There was a connection problem, please check that you have an active internet connection on your device.");

                    Busy = false;
                }
                else
                {
                    var emailTaken = result.ModelState._?.FirstOrDefault();

                    var errorMessage = result.ModelState.FirstName?.Aggregate("",
                                                                              (current, s) => current + (s + Environment.NewLine));

                    errorMessage = result.ModelState.LastName?.Aggregate(errorMessage,
                                                                         (current, s) => current + (s + Environment.NewLine));

                    errorMessage = result.ModelState.Email?.Aggregate(errorMessage,
                                                                      (current, s) => current + (s + Environment.NewLine));

                    errorMessage = result.ModelState.Password?.Aggregate(errorMessage,
                                                                         (current, s) => current + (s + Environment.NewLine));

                    if (!string.IsNullOrEmpty(emailTaken))
                    {
                        errorMessage = result.ModelState.PlaceId?.Aggregate(errorMessage,
                                                                            (current, s) => current + ("Address is required." + Environment.NewLine));
                        errorMessage += emailTaken + Environment.NewLine;
                    }
                    else
                    {
                        errorMessage = result.ModelState.PlaceId?.Aggregate(errorMessage,
                                                                            (current, s) => current + "Address is required.");
                    }

                    errorMessage = result.ModelState.Password?.Aggregate(errorMessage,
                                                                         (current, s) => current + (s + Environment.NewLine));

                    errorMessage = result.ModelState._?.Aggregate(errorMessage,
                                                                  (current, s) => current + (s + Environment.NewLine));

                    RegisterFailed?.Invoke(this, errorMessage?.Trim());

                    Busy = false;
                }
            }
            else
            {
                await Services.Host.AuthService.Authenticate(Email, Password);

                RegisterSuccess?.Invoke(this, EventArgs.Empty);

                Busy = false;
            }
        }