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

View File

@ -6,6 +6,7 @@ using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Library.Exception;
using Milimoe.FunGame.Core.Model;
using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Model;
using Milimoe.FunGame.Desktop.UI;
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.Core.Library.Exception;
using Milimoe.FunGame.Core.Library.Common.Event;
using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Desktop.Library.Component;
using Milimoe.FunGame.Core.Api.Transmittal;
using Milimoe.FunGame.Desktop.Model;
namespace Milimoe.FunGame.Desktop.Controller
{
@ -28,7 +28,7 @@ namespace Milimoe.FunGame.Desktop.Controller
RegisterEventArgs RegEventArgs = new(username, password, email);
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("password", password);
request.AddRequestData("email", email);
@ -55,6 +55,7 @@ namespace Milimoe.FunGame.Desktop.Controller
else break;
}
}
request.Dispose();
if (result) Register.OnSucceedRegEvent(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.Exception;
using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Model;
using Milimoe.FunGame.Desktop.UI;
namespace Milimoe.FunGame.Desktop.Controller
@ -20,11 +21,6 @@ namespace Milimoe.FunGame.Desktop.Controller
LoginController = new(Main);
}
public void Dispose()
{
LoginController.Dispose();
}
public override void WritelnSystemInfo(string msg)
{
Main?.GetMessage(msg);

View File

@ -1,5 +1,6 @@
using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Desktop.Model;
using Milimoe.FunGame.Desktop.UI;
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
{

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.Library.Constant;
namespace Milimoe.FunGame.Desktop.Library
namespace Milimoe.FunGame.Desktop.Model
{
/// <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.Desktop.Controller;
using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Model;
namespace Milimoe.FunGame.Desktop.UI
{
@ -14,7 +15,6 @@ namespace Milimoe.FunGame.Desktop.UI
{
InitializeComponent();
LoginController = new(this);
Disposed += ForgetPassword_Disposed;
}
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.Library;
using Milimoe.FunGame.Desktop.Library.Base;
using Milimoe.FunGame.Desktop.Model;
using Milimoe.FunGame.Desktop.Utility;
namespace Milimoe.FunGame.Desktop.UI
@ -22,7 +23,6 @@ namespace Milimoe.FunGame.Desktop.UI
protected override void BindEvent()
{
base.BindEvent();
Disposed += Login_Disposed;
BeforeLogin += BeforeLoginEvent;
AfterLogin += AfterLoginEvent;
FailedLogin += FailedLoginEvent;
@ -78,11 +78,6 @@ namespace Milimoe.FunGame.Desktop.UI
else GoToLogin.Enabled = true;
});
}
private void Login_Disposed(object? sender, EventArgs e)
{
LoginController.Dispose();
}
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.Library;
using Milimoe.FunGame.Desktop.Library.Base;
using Milimoe.FunGame.Desktop.Model;
using Milimoe.FunGame.Desktop.Utility;
namespace Milimoe.FunGame.Desktop.UI
@ -866,7 +867,6 @@ namespace Milimoe.FunGame.Desktop.UI
{
if (MainController != null) await LogOut();
RunTime.Controller?.Close();
RunTime.Controller?.Dispose();
Environment.Exit(0);
}
}

View File

@ -5,6 +5,7 @@ using Milimoe.FunGame.Core.Library.Exception;
using Milimoe.FunGame.Desktop.Controller;
using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Library.Base;
using Milimoe.FunGame.Desktop.Model;
namespace Milimoe.FunGame.Desktop.UI
{
@ -18,7 +19,7 @@ namespace Milimoe.FunGame.Desktop.UI
public Register()
{
InitializeComponent();
RegController = new RegisterController(this);
RegController = new(this);
LoginController = new(this);
}
@ -115,7 +116,7 @@ namespace Milimoe.FunGame.Desktop.UI
{
string username = ((RegisterEventArgs)e).Username;
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();
return EventResult.Success;
}

View File

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