private void MiniClient_ClientRequestResult(object sender, RequestResultEventArgs e) { lock (ClientHelper.LockObject) { signupCanExecute = true; miniClient?.CloseClient(); miniClient = null; switch (e.Result.Success) { case true: Signup.SignupWindow.Dispatcher.Invoke(() => { Signup.SignupWindow.Close(); MessageBox.Show("注册成功,欢迎使用!", Config.Name, MessageBoxButton.OK, MessageBoxImage.Asterisk); }); break; case false: MessageBox.Show("账户已经被注册!", Config.Name, MessageBoxButton.OK, MessageBoxImage.Warning); break; default: MessageBox.Show("无法连接到服务器!", Config.Name, MessageBoxButton.OK, MessageBoxImage.Error); break; } } }
/// <summary> /// 用户注册 /// </summary> private async void UserSignup() { if (UserName != null && UserPassword != null && ConfirmPassword != null && NickName != null && Age != null) { string userName = UserName.Trim(); string userPassword = UserPassword.Trim(); string confirmPassword = ConfirmPassword.Trim(); string nickName = NickName.Trim(); int age = int.Parse(Age.Trim()); string gender = Gender == true ? "男" : "女"; if (!userName.Equals(string.Empty) && !userPassword.Equals(string.Empty) && !confirmPassword.Equals(string.Empty) && !nickName.Equals(string.Empty)) { if (userPassword.Length >= 6 && userPassword.Equals(confirmPassword)) { signupCanExecute = false; miniClient = new MiniClient(userName, Config.ClientAddressFamily, Config.ClientAgreement, Config.GetServerIPEndPoint()); miniClient.ClientRequestResult += MiniClient_ClientRequestResult; miniClient.OpenClient(); if (await miniClient.ConnectionServerAsync()) { User user = new User() { UserName = userName, Password = ClientHelper.Encryption(userPassword), NickName = nickName, Gender = gender, Age = age, HeadIcon = ClientHelper.GetBytes(gender == "男" ? new Uri("/Resources/Images/boy.png", UriKind.Relative) : new Uri("/Resources/Images/girl.png", UriKind.Relative)) }; if (miniClient.SendDatabaseRequest(user, "Signup", null)) { if (!await ClientHelper.WaitAsync(() => signupCanExecute, 20)) { signupCanExecute = true; miniClient?.CloseClient(); miniClient = null; MessageBox.Show("服务器连接超时!", Config.Name, MessageBoxButton.OK, MessageBoxImage.Error); } return; } } signupCanExecute = true; miniClient?.CloseClient(); miniClient = null; MessageBox.Show("无法连接到服务器!", Config.Name, MessageBoxButton.OK, MessageBoxImage.Error); return; } MessageBox.Show("密码不符合要求!", Config.Name, MessageBoxButton.OK, MessageBoxImage.Warning); return; } } MessageBox.Show("用户信息不能为空!", Config.Name, MessageBoxButton.OK, MessageBoxImage.Warning); }