From c3c153635f155ca9af7da867bcfe401baf7a25e8 Mon Sep 17 00:00:00 2001 From: milimoe Date: Mon, 16 Oct 2023 20:56:01 +0800 Subject: [PATCH] Add Authenticator --- Api/Transmittal/SQLHelper.cs | 2 +- Interface/Base/ISQLHelper.cs | 2 +- Library/Common/Architecture/Authenticator.cs | 32 ++++++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 Library/Common/Architecture/Authenticator.cs diff --git a/Api/Transmittal/SQLHelper.cs b/Api/Transmittal/SQLHelper.cs index e7e8781..55c799b 100644 --- a/Api/Transmittal/SQLHelper.cs +++ b/Api/Transmittal/SQLHelper.cs @@ -14,10 +14,10 @@ namespace Milimoe.FunGame.Core.Api.Transmittal public abstract string Script { get; set; } public abstract CommandType CommandType { get; set; } public abstract SQLResult Result { get; } - public abstract bool Success { get; } public abstract SQLServerInfo ServerInfo { get; } public abstract int UpdateRows { get; } public abstract DataSet DataSet { get; } + public bool Success => Result == SQLResult.Success; /// /// 执行一个命令 diff --git a/Interface/Base/ISQLHelper.cs b/Interface/Base/ISQLHelper.cs index 81d339c..545688f 100644 --- a/Interface/Base/ISQLHelper.cs +++ b/Interface/Base/ISQLHelper.cs @@ -10,10 +10,10 @@ namespace Milimoe.FunGame.Core.Interface.Base public string Script { get; set; } public CommandType CommandType { get; set; } public SQLResult Result { get; } - public bool Success { get; } public SQLServerInfo ServerInfo { get; } public int UpdateRows { get; } public DataSet DataSet { get; } + public bool Success { get; } public int Execute(); public DataSet ExecuteDataSet(); diff --git a/Library/Common/Architecture/Authenticator.cs b/Library/Common/Architecture/Authenticator.cs new file mode 100644 index 0000000..6610290 --- /dev/null +++ b/Library/Common/Architecture/Authenticator.cs @@ -0,0 +1,32 @@ +using System.Data; +using Milimoe.FunGame.Core.Api.Transmittal; + +namespace Milimoe.FunGame.Core.Library.Common.Architecture +{ + public abstract class Authenticator + { + private readonly SQLHelper SQLHelper; + + public Authenticator(SQLHelper SQLHelper) + { + this.SQLHelper = SQLHelper; + } + + public bool Authenticate(string script, string column, T keyword) + { + SQLHelper.ExecuteDataSet(script); + if (SQLHelper.Success) + { + DataSet ds = SQLHelper.DataSet; + if (ds.Tables.Count > 0 && + ds.Tables[0].Columns.Contains(column) && + ds.Tables[0].Rows.Count > 0 && + ds.Tables[0].AsEnumerable().Where(row => row.Field(column)!.Equals(keyword)).Any()) + { + return true; + } + } + return false; + } + } +}