使用RunTimeModel;修改所有Controller

This commit is contained in:
milimoe 2023-09-05 00:24:07 +08:00
parent cd149e0cf1
commit 4f80628fcb
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
17 changed files with 57 additions and 99 deletions

View File

@ -8,6 +8,7 @@ using Milimoe.FunGame.Core.Library.SQLScript.Common;
using Milimoe.FunGame.Core.Library.SQLScript.Entity; using Milimoe.FunGame.Core.Library.SQLScript.Entity;
using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Library.Component; using Milimoe.FunGame.Desktop.Library.Component;
using Milimoe.FunGame.Desktop.Model;
using Milimoe.FunGame.Desktop.UI; using Milimoe.FunGame.Desktop.UI;
namespace Milimoe.FunGame.Desktop.Controller namespace Milimoe.FunGame.Desktop.Controller
@ -15,23 +16,10 @@ namespace Milimoe.FunGame.Desktop.Controller
public class LoginController public class LoginController
{ {
private readonly GeneralForm UIForm; private readonly GeneralForm UIForm;
private readonly DataRequest LoginRequest;
private readonly DataRequest ForgetPasswordRequest;
private readonly DataRequest UpdatePasswordRequest;
public LoginController(GeneralForm form) public LoginController(GeneralForm form)
{ {
UIForm = form; UIForm = form;
LoginRequest = RunTime.NewLongRunningDataRequest(DataRequestType.RunTime_Login);
ForgetPasswordRequest = RunTime.NewLongRunningDataRequest(DataRequestType.Login_GetFindPasswordVerifyCode);
UpdatePasswordRequest = RunTime.NewLongRunningDataRequest(DataRequestType.Login_UpdatePassword);
}
public void Dispose()
{
LoginRequest.Dispose();
ForgetPasswordRequest.Dispose();
UpdatePasswordRequest.Dispose();
} }
public async Task<bool> LoginAccountAsync(string username, string password, string autokey = "") public async Task<bool> LoginAccountAsync(string username, string password, string autokey = "")
@ -44,32 +32,33 @@ namespace Milimoe.FunGame.Desktop.Controller
{ {
if (OnBeforeLoginEvent(args)) if (OnBeforeLoginEvent(args))
{ {
LoginRequest.AddRequestData("username", username); DataRequest request = RunTime.NewLongRunningDataRequest(DataRequestType.RunTime_Login);
LoginRequest.AddRequestData("password", password); request.AddRequestData("username", username);
LoginRequest.AddRequestData("autokey", autokey); request.AddRequestData("password", password);
await LoginRequest.SendRequestAsync(); request.AddRequestData("autokey", autokey);
if (LoginRequest.Result == RequestResult.Success) await request.SendRequestAsync();
if (request.Result == RequestResult.Success)
{ {
Guid key = LoginRequest.GetResult<Guid>("checkloginkey"); Guid key = request.GetResult<Guid>("checkloginkey");
msg = LoginRequest.GetResult<string>("msg") ?? ""; msg = request.GetResult<string>("msg") ?? "";
if (msg != "") if (msg != "")
{ {
UIForm.ShowMessage(ShowMessageType.Error, msg); UIForm.ShowMessage(ShowMessageType.Error, msg);
} }
else if (key != Guid.Empty) else if (key != Guid.Empty)
{ {
LoginRequest.AddRequestData("checkloginkey", key); request.AddRequestData("checkloginkey", key);
await LoginRequest.SendRequestAsync(); await request.SendRequestAsync();
if (LoginRequest.Result == RequestResult.Success) if (request.Result == RequestResult.Success)
{ {
msg = LoginRequest.GetResult<string>("msg") ?? ""; msg = request.GetResult<string>("msg") ?? "";
if (msg != "") if (msg != "")
{ {
UIForm.ShowMessage(ShowMessageType.Error, msg); UIForm.ShowMessage(ShowMessageType.Error, msg);
} }
else else
{ {
User user = LoginRequest.GetResult<User>("user") ?? Factory.GetUser(); User user = request.GetResult<User>("user") ?? Factory.GetUser();
if (user.Id != 0) if (user.Id != 0)
{ {
// 创建User对象并返回到Main // 创建User对象并返回到Main
@ -80,6 +69,7 @@ namespace Milimoe.FunGame.Desktop.Controller
} }
} }
} }
request.Dispose();
} }
} }
catch (Exception e) catch (Exception e)
@ -97,36 +87,38 @@ namespace Milimoe.FunGame.Desktop.Controller
return result; return result;
} }
public async Task<string> ForgetPassword_CheckVerifyCodeAsync(string username, string email, string verifycode) public static async Task<string> ForgetPassword_CheckVerifyCodeAsync(string username, string email, string verifycode)
{ {
string msg = "无法找回您的密码,请稍后再试。"; string msg = "无法找回您的密码,请稍后再试。";
try try
{ {
ForgetPasswordRequest.AddRequestData(ForgetVerifyCodes.Column_Username, username); DataRequest request = RunTime.NewLongRunningDataRequest(DataRequestType.Login_GetFindPasswordVerifyCode);
ForgetPasswordRequest.AddRequestData(ForgetVerifyCodes.Column_Email, email); request.AddRequestData(ForgetVerifyCodes.Column_Username, username);
request.AddRequestData(ForgetVerifyCodes.Column_Email, email);
if (verifycode.Trim() == "") if (verifycode.Trim() == "")
{ {
// 未发送verifycode说明需要系统生成一个验证码 // 未发送verifycode说明需要系统生成一个验证码
ForgetPasswordRequest.AddRequestData(ForgetVerifyCodes.Column_ForgetVerifyCode, ""); request.AddRequestData(ForgetVerifyCodes.Column_ForgetVerifyCode, "");
await ForgetPasswordRequest.SendRequestAsync(); await request.SendRequestAsync();
if (ForgetPasswordRequest.Result == RequestResult.Success) if (request.Result == RequestResult.Success)
{ {
msg = ForgetPasswordRequest.GetResult<string>("msg") ?? msg; msg = request.GetResult<string>("msg") ?? msg;
} }
else RunTime.WritelnSystemInfo(ForgetPasswordRequest.Error); else RunTime.WritelnSystemInfo(request.Error);
} }
else else
{ {
// 发送verifycode需要验证 // 发送verifycode需要验证
ForgetPasswordRequest.AddRequestData(ForgetVerifyCodes.Column_ForgetVerifyCode, verifycode); request.AddRequestData(ForgetVerifyCodes.Column_ForgetVerifyCode, verifycode);
await ForgetPasswordRequest.SendRequestAsync(); await request.SendRequestAsync();
if (ForgetPasswordRequest.Result == RequestResult.Success) if (request.Result == RequestResult.Success)
{ {
msg = ForgetPasswordRequest.GetResult<string>("msg") ?? msg; msg = request.GetResult<string>("msg") ?? msg;
} }
else RunTime.WritelnSystemInfo(ForgetPasswordRequest.Error); else RunTime.WritelnSystemInfo(request.Error);
} }
request.Dispose();
} }
catch (Exception e) catch (Exception e)
{ {
@ -136,20 +128,22 @@ namespace Milimoe.FunGame.Desktop.Controller
return msg; return msg;
} }
public async Task<string> ForgetPassword_UpdatePasswordAsync(string username, string password) public static async Task<string> ForgetPassword_UpdatePasswordAsync(string username, string password)
{ {
string msg = "无法更新您的密码,请稍后再试。"; string msg = "无法更新您的密码,请稍后再试。";
try try
{ {
UpdatePasswordRequest.AddRequestData(UserQuery.Column_Username, username); DataRequest request = RunTime.NewLongRunningDataRequest(DataRequestType.Login_UpdatePassword);
UpdatePasswordRequest.AddRequestData(UserQuery.Column_Password, password.Encrypt(username)); request.AddRequestData(UserQuery.Column_Username, username);
await UpdatePasswordRequest.SendRequestAsync(); request.AddRequestData(UserQuery.Column_Password, password.Encrypt(username));
if (UpdatePasswordRequest.Result == RequestResult.Success) await request.SendRequestAsync();
if (request.Result == RequestResult.Success)
{ {
msg = UpdatePasswordRequest.GetResult<string>("msg") ?? msg; msg = request.GetResult<string>("msg") ?? msg;
} }
else RunTime.WritelnSystemInfo(UpdatePasswordRequest.Error); else RunTime.WritelnSystemInfo(request.Error);
request.Dispose();
} }
catch (Exception e) catch (Exception e)
{ {

View File

@ -6,6 +6,7 @@ using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Library.Exception; using Milimoe.FunGame.Core.Library.Exception;
using Milimoe.FunGame.Core.Model; using Milimoe.FunGame.Core.Model;
using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Model;
using Milimoe.FunGame.Desktop.UI; using Milimoe.FunGame.Desktop.UI;
namespace Milimoe.FunGame.Desktop.Controller namespace Milimoe.FunGame.Desktop.Controller

View File

@ -1,11 +1,11 @@
using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Desktop.UI; using Milimoe.FunGame.Desktop.UI;
using Milimoe.FunGame.Core.Library.Exception; using Milimoe.FunGame.Core.Library.Exception;
using Milimoe.FunGame.Core.Library.Common.Event; using Milimoe.FunGame.Core.Library.Common.Event;
using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Desktop.Library.Component; using Milimoe.FunGame.Desktop.Library.Component;
using Milimoe.FunGame.Core.Api.Transmittal; using Milimoe.FunGame.Core.Api.Transmittal;
using Milimoe.FunGame.Desktop.Model;
namespace Milimoe.FunGame.Desktop.Controller namespace Milimoe.FunGame.Desktop.Controller
{ {
@ -28,7 +28,7 @@ namespace Milimoe.FunGame.Desktop.Controller
RegisterEventArgs RegEventArgs = new(username, password, email); RegisterEventArgs RegEventArgs = new(username, password, email);
if (Register.OnBeforeRegEvent(RegEventArgs) == EventResult.Fail) return false; if (Register.OnBeforeRegEvent(RegEventArgs) == EventResult.Fail) return false;
DataRequest request = RunTime.NewDataRequest(DataRequestType.Reg_GetRegVerifyCode); DataRequest request = RunTime.NewLongRunningDataRequest(DataRequestType.Reg_GetRegVerifyCode);
request.AddRequestData("username", username); request.AddRequestData("username", username);
request.AddRequestData("password", password); request.AddRequestData("password", password);
request.AddRequestData("email", email); request.AddRequestData("email", email);
@ -55,6 +55,7 @@ namespace Milimoe.FunGame.Desktop.Controller
else break; else break;
} }
} }
request.Dispose();
if (result) Register.OnSucceedRegEvent(RegEventArgs); if (result) Register.OnSucceedRegEvent(RegEventArgs);
else Register.OnFailedRegEvent(RegEventArgs); else Register.OnFailedRegEvent(RegEventArgs);

View File

@ -4,6 +4,7 @@ using Milimoe.FunGame.Core.Library.Common.Network;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Library.Exception; using Milimoe.FunGame.Core.Library.Exception;
using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Model;
using Milimoe.FunGame.Desktop.UI; using Milimoe.FunGame.Desktop.UI;
namespace Milimoe.FunGame.Desktop.Controller namespace Milimoe.FunGame.Desktop.Controller
@ -20,11 +21,6 @@ namespace Milimoe.FunGame.Desktop.Controller
LoginController = new(Main); LoginController = new(Main);
} }
public void Dispose()
{
LoginController.Dispose();
}
public override void WritelnSystemInfo(string msg) public override void WritelnSystemInfo(string msg)
{ {
Main?.GetMessage(msg); Main?.GetMessage(msg);

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Desktop.Model;
using Milimoe.FunGame.Desktop.UI; using Milimoe.FunGame.Desktop.UI;
using Milimoe.FunGame.Desktop.Utility; using Milimoe.FunGame.Desktop.Utility;

View File

@ -1,4 +1,6 @@
namespace Milimoe.FunGame.Desktop.Library using Milimoe.FunGame.Desktop.Model;
namespace Milimoe.FunGame.Desktop.Library
{ {
public class Config public class Config
{ {

View File

@ -1,6 +0,0 @@
namespace Milimoe.FunGame.Desktop.Model
{
public class InventoryModel
{
}
}

View File

@ -1,6 +0,0 @@
namespace Milimoe.FunGame.Desktop.Model
{
public class RoomSettingModel
{
}
}

View File

@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Api.Transmittal; using Milimoe.FunGame.Core.Api.Transmittal;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
namespace Milimoe.FunGame.Desktop.Library namespace Milimoe.FunGame.Desktop.Model
{ {
/// <summary> /// <summary>
/// 运行时单例 /// 运行时单例

View File

@ -1,4 +0,0 @@
namespace Milimoe.FunGame.Desktop.Model
{
// wait to remove
}

View File

@ -1,6 +0,0 @@
namespace Milimoe.FunGame.Desktop.Model
{
public class StoreModel
{
}
}

View File

@ -1,6 +0,0 @@
namespace Milimoe.FunGame.Desktop.Model
{
public class UserCenterModel
{
}
}

View File

@ -3,6 +3,7 @@ using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Library.Exception; using Milimoe.FunGame.Core.Library.Exception;
using Milimoe.FunGame.Desktop.Controller; using Milimoe.FunGame.Desktop.Controller;
using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Model;
namespace Milimoe.FunGame.Desktop.UI namespace Milimoe.FunGame.Desktop.UI
{ {
@ -14,7 +15,6 @@ namespace Milimoe.FunGame.Desktop.UI
{ {
InitializeComponent(); InitializeComponent();
LoginController = new(this); LoginController = new(this);
Disposed += ForgetPassword_Disposed;
} }
private void FindPassword_Click(object sender, EventArgs e) private void FindPassword_Click(object sender, EventArgs e)
@ -123,10 +123,5 @@ namespace Milimoe.FunGame.Desktop.UI
} }
}); });
} }
private void ForgetPassword_Disposed(object? sender, EventArgs e)
{
LoginController.Dispose();
}
} }
} }

View File

@ -5,6 +5,7 @@ using Milimoe.FunGame.Core.Library.Exception;
using Milimoe.FunGame.Desktop.Controller; using Milimoe.FunGame.Desktop.Controller;
using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Library.Base; using Milimoe.FunGame.Desktop.Library.Base;
using Milimoe.FunGame.Desktop.Model;
using Milimoe.FunGame.Desktop.Utility; using Milimoe.FunGame.Desktop.Utility;
namespace Milimoe.FunGame.Desktop.UI namespace Milimoe.FunGame.Desktop.UI
@ -22,7 +23,6 @@ namespace Milimoe.FunGame.Desktop.UI
protected override void BindEvent() protected override void BindEvent()
{ {
base.BindEvent(); base.BindEvent();
Disposed += Login_Disposed;
BeforeLogin += BeforeLoginEvent; BeforeLogin += BeforeLoginEvent;
AfterLogin += AfterLoginEvent; AfterLogin += AfterLoginEvent;
FailedLogin += FailedLoginEvent; FailedLogin += FailedLoginEvent;
@ -78,11 +78,6 @@ namespace Milimoe.FunGame.Desktop.UI
else GoToLogin.Enabled = true; else GoToLogin.Enabled = true;
}); });
} }
private void Login_Disposed(object? sender, EventArgs e)
{
LoginController.Dispose();
}
private void ForgetPassword_Click(object sender, EventArgs e) private void ForgetPassword_Click(object sender, EventArgs e)
{ {

View File

@ -7,6 +7,7 @@ using Milimoe.FunGame.Core.Library.Exception;
using Milimoe.FunGame.Desktop.Controller; using Milimoe.FunGame.Desktop.Controller;
using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Library.Base; using Milimoe.FunGame.Desktop.Library.Base;
using Milimoe.FunGame.Desktop.Model;
using Milimoe.FunGame.Desktop.Utility; using Milimoe.FunGame.Desktop.Utility;
namespace Milimoe.FunGame.Desktop.UI namespace Milimoe.FunGame.Desktop.UI
@ -866,7 +867,6 @@ namespace Milimoe.FunGame.Desktop.UI
{ {
if (MainController != null) await LogOut(); if (MainController != null) await LogOut();
RunTime.Controller?.Close(); RunTime.Controller?.Close();
RunTime.Controller?.Dispose();
Environment.Exit(0); Environment.Exit(0);
} }
} }

View File

@ -5,6 +5,7 @@ using Milimoe.FunGame.Core.Library.Exception;
using Milimoe.FunGame.Desktop.Controller; using Milimoe.FunGame.Desktop.Controller;
using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Library.Base; using Milimoe.FunGame.Desktop.Library.Base;
using Milimoe.FunGame.Desktop.Model;
namespace Milimoe.FunGame.Desktop.UI namespace Milimoe.FunGame.Desktop.UI
{ {
@ -18,7 +19,7 @@ namespace Milimoe.FunGame.Desktop.UI
public Register() public Register()
{ {
InitializeComponent(); InitializeComponent();
RegController = new RegisterController(this); RegController = new(this);
LoginController = new(this); LoginController = new(this);
} }
@ -115,7 +116,7 @@ namespace Milimoe.FunGame.Desktop.UI
{ {
string username = ((RegisterEventArgs)e).Username; string username = ((RegisterEventArgs)e).Username;
string password = ((RegisterEventArgs)e).Password; string password = ((RegisterEventArgs)e).Password;
TaskUtility.StartAndAwaitTask(async () => await LoginController.LoginAccountAsync(username, password)).OnCompleted(LoginController.Dispose); TaskUtility.StartAndAwaitTask(async () => await LoginController.LoginAccountAsync(username, password));
RunTime.Login?.Close(); RunTime.Login?.Close();
return EventResult.Success; return EventResult.Success;
} }

View File

@ -1,7 +1,7 @@
using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Library.Exception; using Milimoe.FunGame.Core.Library.Exception;
using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.Model;
using Milimoe.FunGame.Desktop.UI; using Milimoe.FunGame.Desktop.UI;
namespace Milimoe.FunGame.Desktop.Utility namespace Milimoe.FunGame.Desktop.Utility