mirror of
https://github.com/project-redbud/FunGame-Desktop.git
synced 2025-12-17 05:48:24 +00:00
* 修改架构 第一部分 * update Connect() * 更新LoginController * 删除using * 添加Login事件 * 修改架构 第二部分 * 将ShowMessage封装到底层窗体 * 将LoginController修改为非静态
136 lines
4.9 KiB
C#
136 lines
4.9 KiB
C#
using Milimoe.FunGame.Core.Api.Utility;
|
||
using Milimoe.FunGame.Core.Library.Common.Event;
|
||
using Milimoe.FunGame.Core.Library.Constant;
|
||
using Milimoe.FunGame.Core.Library.Exception;
|
||
using Milimoe.FunGame.Desktop.Controller;
|
||
using Milimoe.FunGame.Desktop.Library;
|
||
using Milimoe.FunGame.Desktop.Library.Base;
|
||
|
||
namespace Milimoe.FunGame.Desktop.UI
|
||
{
|
||
public partial class Register : BaseReg
|
||
{
|
||
public bool CheckReg { get; set; } = false;
|
||
|
||
private readonly RegisterController RegController;
|
||
private readonly LoginController LoginController;
|
||
|
||
public Register()
|
||
{
|
||
InitializeComponent();
|
||
RegController = new RegisterController(this);
|
||
LoginController = new(this);
|
||
}
|
||
|
||
protected override void BindEvent()
|
||
{
|
||
base.BindEvent();
|
||
SucceedReg += SucceedRegEvent;
|
||
}
|
||
|
||
private async Task<bool> Reg_Handler()
|
||
{
|
||
try
|
||
{
|
||
string username = UsernameText.Text.Trim();
|
||
string password = PasswordText.Text.Trim();
|
||
string checkpassword = CheckPasswordText.Text.Trim();
|
||
string email = EmailText.Text.Trim();
|
||
if (username != "")
|
||
{
|
||
if (NetworkUtility.IsUserName(username))
|
||
{
|
||
int length = NetworkUtility.GetUserNameLength(username);
|
||
if (length >= 3 && length <= 12) // 字节范围 3~12
|
||
{
|
||
if (password != checkpassword)
|
||
{
|
||
ShowMessage(ShowMessageType.Error, "两个密码不相同,请重新输入!");
|
||
CheckPasswordText.Focus();
|
||
return false;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
ShowMessage(ShowMessageType.Error, "账号名长度不符合要求:最多6个中文字符或12个英文字符");
|
||
UsernameText.Focus();
|
||
return false;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
ShowMessage(ShowMessageType.Error, "账号名不符合要求:不能包含特殊字符");
|
||
UsernameText.Focus();
|
||
return false;
|
||
}
|
||
}
|
||
if (password != "")
|
||
{
|
||
int length = password.Length;
|
||
if (length < 6 || length > 15) // 字节范围 3~12
|
||
{
|
||
ShowMessage(ShowMessageType.Error, "密码长度不符合要求:6~15个字符数");
|
||
PasswordText.Focus();
|
||
return false;
|
||
}
|
||
}
|
||
if (username == "" || password == "" || checkpassword == "")
|
||
{
|
||
ShowMessage(ShowMessageType.Error, "请将账号和密码填写完整!");
|
||
UsernameText.Focus();
|
||
return false;
|
||
}
|
||
if (email == "")
|
||
{
|
||
ShowMessage(ShowMessageType.Error, "邮箱不能为空!");
|
||
EmailText.Focus();
|
||
return false;
|
||
}
|
||
if (!NetworkUtility.IsEmail(email))
|
||
{
|
||
ShowMessage(ShowMessageType.Error, "这不是一个邮箱地址!");
|
||
EmailText.Focus();
|
||
return false;
|
||
}
|
||
return await RegController.RegAsync(username, password, email);
|
||
}
|
||
catch (Exception e)
|
||
{
|
||
RunTime.WritelnSystemInfo(e.GetErrorInfo());
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 关闭窗口
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
private void ExitButton_Click(object sender, EventArgs e)
|
||
{
|
||
Dispose();
|
||
}
|
||
|
||
private EventResult SucceedRegEvent(object sender, GeneralEventArgs e)
|
||
{
|
||
string username = ((RegisterEventArgs)e).Username;
|
||
string password = ((RegisterEventArgs)e).Password;
|
||
TaskUtility.StartAndAwaitTask(async () => await LoginController.LoginAccountAsync(username, password)).OnCompleted(LoginController.Dispose);
|
||
RunTime.Login?.Close();
|
||
return EventResult.Success;
|
||
}
|
||
|
||
private async void RegButton_Click(object sender, EventArgs e)
|
||
{
|
||
RegButton.Enabled = false;
|
||
if (!await Reg_Handler()) RegButton.Enabled = true;
|
||
else Dispose();
|
||
}
|
||
|
||
private void GoToLogin_Click(object sender, EventArgs e)
|
||
{
|
||
Dispose();
|
||
}
|
||
}
|
||
}
|