From 9ca5a74c8ab9d4f4a336b2a3f1cd25246268ad19 Mon Sep 17 00:00:00 2001 From: Argo Window10 Date: Tue, 12 Nov 2019 12:14:11 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=B6=88=E9=99=A4=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/Bootstrap.DataAccess/App.cs | 3 +- src/admin/Bootstrap.DataAccess/AutoDB.cs | 36 ++++----- src/admin/Bootstrap.DataAccess/DBLog.cs | 6 +- src/admin/Bootstrap.DataAccess/Dict.cs | 9 ++- src/admin/Bootstrap.DataAccess/Exceptions.cs | 9 ++- src/admin/Bootstrap.DataAccess/Group.cs | 17 ++-- .../Bootstrap.DataAccess/Helper/LogHelper.cs | 8 +- src/admin/Bootstrap.DataAccess/Log.cs | 16 ++-- src/admin/Bootstrap.DataAccess/Menu.cs | 12 +-- src/admin/Bootstrap.DataAccess/Message.cs | 4 +- src/admin/Bootstrap.DataAccess/ResetUsers.cs | 15 +++- src/admin/Bootstrap.DataAccess/Role.cs | 35 +++++--- src/admin/Bootstrap.DataAccess/Task.cs | 9 ++- src/admin/Bootstrap.DataAccess/Trace.cs | 13 +-- src/admin/Bootstrap.DataAccess/User.cs | 79 ++++++++++++++----- 15 files changed, 181 insertions(+), 90 deletions(-) diff --git a/src/admin/Bootstrap.DataAccess/App.cs b/src/admin/Bootstrap.DataAccess/App.cs index 3af9bdc2..71f2a251 100644 --- a/src/admin/Bootstrap.DataAccess/App.cs +++ b/src/admin/Bootstrap.DataAccess/App.cs @@ -33,7 +33,8 @@ namespace Bootstrap.DataAccess /// public virtual IEnumerable RetrievesByRoleId(string roleId) { - var ret = DbManager.Create().Fetch($"select d.Code as Id, d.Name as AppName, case ra.AppId when d.Code then 'checked' else '' end Checked from Dicts d left join RoleApp ra on d.Code = ra.AppId and ra.RoleId = @1 where d.Code > '0' and d.Category = @0", "应用程序", roleId); + using var db = DbManager.Create(); + var ret = db.Fetch($"select d.Code as Id, d.Name as AppName, case ra.AppId when d.Code then 'checked' else '' end Checked from Dicts d left join RoleApp ra on d.Code = ra.AppId and ra.RoleId = @1 where d.Code > '0' and d.Category = @0", "应用程序", roleId); // 判断是否为Administrators var role = RoleHelper.Retrieves().FirstOrDefault(r => r.Id == roleId); diff --git a/src/admin/Bootstrap.DataAccess/AutoDB.cs b/src/admin/Bootstrap.DataAccess/AutoDB.cs index 61b5bacb..54404f76 100644 --- a/src/admin/Bootstrap.DataAccess/AutoDB.cs +++ b/src/admin/Bootstrap.DataAccess/AutoDB.cs @@ -19,26 +19,24 @@ namespace Bootstrap.DataAccess public virtual void CheckDB(string folder) { _folder = folder; - using (var db = Longbow.Data.DbManager.Create()) + using var db = Longbow.Data.DbManager.Create(); + db.CommandTimeout = 5000; + switch (db.Provider.GetType().Name) { - db.CommandTimeout = 5000; - switch (db.Provider.GetType().Name) - { - case "SQLiteDatabaseProvider": - if (db.ExecuteScalar("SELECT count(*) FROM sqlite_master WHERE type='table' AND name='Users'") == 0) GenerateSQLiteDB(db); - break; - case "SqlServerDatabaseProvider": - using (var newDB = ModifyConnectionString(db)) - { - if (newDB.ExecuteScalar("select COUNT(1) from sys.databases where name = N'BootstrapAdmin'") == 0) GenerateSqlServer(); - } - break; - case "MySqlDatabaseProvider": - case "MariaDbDatabaseProvider": - // UNDONE: 本地没有环境此处代码未测试 - if (db.ExecuteScalar("select count(*) from information_schema.tables where table_name ='Users' and Table_Schema = 'BootstrapAdmin'") == 0) GenerateMySql(); - break; - } + case "SQLiteDatabaseProvider": + if (db.ExecuteScalar("SELECT count(*) FROM sqlite_master WHERE type='table' AND name='Users'") == 0) GenerateSQLiteDB(db); + break; + case "SqlServerDatabaseProvider": + using (var newDB = ModifyConnectionString(db)) + { + if (newDB.ExecuteScalar("select COUNT(1) from sys.databases where name = N'BootstrapAdmin'") == 0) GenerateSqlServer(); + } + break; + case "MySqlDatabaseProvider": + case "MariaDbDatabaseProvider": + // UNDONE: 本地没有环境此处代码未测试 + if (db.ExecuteScalar("select count(*) from information_schema.tables where table_name ='Users' and Table_Schema = 'BootstrapAdmin'") == 0) GenerateMySql(); + break; } } diff --git a/src/admin/Bootstrap.DataAccess/DBLog.cs b/src/admin/Bootstrap.DataAccess/DBLog.cs index d161a949..2249eaf2 100644 --- a/src/admin/Bootstrap.DataAccess/DBLog.cs +++ b/src/admin/Bootstrap.DataAccess/DBLog.cs @@ -50,7 +50,8 @@ namespace Bootstrap.DataAccess if (!string.IsNullOrEmpty(userName)) sql.Where("UserName = @0", userName); sql.OrderBy($"{po.Sort} {po.Order}"); - return DbManager.Create().Page(po.PageIndex, po.Limit, sql); + using var db = DbManager.Create(); + return db.Page(po.PageIndex, po.Limit, sql); } /// @@ -75,7 +76,8 @@ namespace Bootstrap.DataAccess { if (p == null) throw new ArgumentNullException(nameof(p)); DeleteLogAsync(); - DbManager.Create(enableLog: false).Save(p); + using var db = DbManager.Create(enableLog: false); + db.Save(p); return true; } } diff --git a/src/admin/Bootstrap.DataAccess/Dict.cs b/src/admin/Bootstrap.DataAccess/Dict.cs index 60a8c214..dc277410 100644 --- a/src/admin/Bootstrap.DataAccess/Dict.cs +++ b/src/admin/Bootstrap.DataAccess/Dict.cs @@ -24,7 +24,8 @@ namespace Bootstrap.DataAccess if (!value.Any()) return true; var ids = string.Join(",", value); string sql = $"where ID in ({ids})"; - DbManager.Create().Delete(sql); + using var db = DbManager.Create(); + db.Delete(sql); return true; } @@ -39,7 +40,8 @@ namespace Bootstrap.DataAccess if (dict.Name.Length > 50) dict.Name = dict.Name.Substring(0, 50); if (dict.Code.Length > 2000) dict.Code = dict.Code.Substring(0, 2000); - DbManager.Create().Save(dict); + using var db = DbManager.Create(); + db.Save(dict); return true; } @@ -50,7 +52,8 @@ namespace Bootstrap.DataAccess /// public virtual bool SaveSettings(BootstrapDict dict) { - DbManager.Create().Update("set Code = @Code where Category = @Category and Name = @Name", dict); + using var db = DbManager.Create(); + db.Update("set Code = @Code where Category = @Category and Name = @Name", dict); return true; } diff --git a/src/admin/Bootstrap.DataAccess/Exceptions.cs b/src/admin/Bootstrap.DataAccess/Exceptions.cs index 3fd6d969..bec1cb80 100644 --- a/src/admin/Bootstrap.DataAccess/Exceptions.cs +++ b/src/admin/Bootstrap.DataAccess/Exceptions.cs @@ -127,7 +127,11 @@ namespace Bootstrap.DataAccess /// 查询一周内所有异常 /// /// - public virtual IEnumerable Retrieves() => DbManager.Create().Fetch("select * from Exceptions where LogTime > @0 order by LogTime desc", DateTime.Now.AddMonths(0 - DictHelper.RetrieveExceptionsLogPeriod())); + public virtual IEnumerable Retrieves() + { + using var db = DbManager.Create(); + return db.Fetch("select * from Exceptions where LogTime > @0 order by LogTime desc", DateTime.Now.AddMonths(0 - DictHelper.RetrieveExceptionsLogPeriod())); + } /// /// @@ -147,7 +151,8 @@ namespace Bootstrap.DataAccess if (startTime == null && endTime == null) sql.Append("where LogTime > @0", DateTime.Today.AddMonths(0 - DictHelper.RetrieveExceptionsLogPeriod())); sql.Append($"order by {po.Sort} {po.Order}"); - return DbManager.Create().Page(po.PageIndex, po.Limit, sql); + using var db = DbManager.Create(); + return db.Page(po.PageIndex, po.Limit, sql); } } } diff --git a/src/admin/Bootstrap.DataAccess/Group.cs b/src/admin/Bootstrap.DataAccess/Group.cs index 68103d6d..72badbd0 100644 --- a/src/admin/Bootstrap.DataAccess/Group.cs +++ b/src/admin/Bootstrap.DataAccess/Group.cs @@ -28,7 +28,11 @@ namespace Bootstrap.DataAccess /// 查询所有群组信息 /// /// - public virtual IEnumerable Retrieves() => DbManager.Create().Fetch(); + public virtual IEnumerable Retrieves() + { + using var db = DbManager.Create(); + return db.Fetch(); + } /// /// 删除群组信息 @@ -36,9 +40,9 @@ namespace Bootstrap.DataAccess /// public virtual bool Delete(IEnumerable value) { - bool ret = false; var ids = string.Join(",", value); - var db = DbManager.Create(); + using var db = DbManager.Create(); + bool ret; try { db.BeginTransaction(); @@ -63,7 +67,8 @@ namespace Bootstrap.DataAccess /// public virtual bool Save(Group p) { - DbManager.Create().Save(p); + using var db = DbManager.Create(); + db.Save(p); return true; } @@ -74,7 +79,7 @@ namespace Bootstrap.DataAccess /// public virtual IEnumerable RetrievesByUserId(string userId) { - var db = DbManager.Create(); + using var db = DbManager.Create(); return db.Fetch($"select g.ID, g.GroupCode, g.GroupName, g.Description, case ug.GroupID when g.ID then 'checked' else '' end Checked from {db.Provider.EscapeSqlIdentifier("Groups")} g left join UserGroup ug on g.ID = ug.GroupID and UserID = @0", userId); } @@ -85,7 +90,7 @@ namespace Bootstrap.DataAccess /// public virtual IEnumerable RetrievesByRoleId(string roleId) { - var db = DbManager.Create(); + using var db = DbManager.Create(); return db.Fetch($"select g.ID, g.GroupCode, g.GroupName, g.Description, case rg.GroupID when g.ID then 'checked' else '' end Checked from {db.Provider.EscapeSqlIdentifier("Groups")} g left join RoleGroup rg on g.ID = rg.GroupID and RoleID = @0", roleId); } diff --git a/src/admin/Bootstrap.DataAccess/Helper/LogHelper.cs b/src/admin/Bootstrap.DataAccess/Helper/LogHelper.cs index a982283a..37ff51b6 100644 --- a/src/admin/Bootstrap.DataAccess/Helper/LogHelper.cs +++ b/src/admin/Bootstrap.DataAccess/Helper/LogHelper.cs @@ -42,7 +42,7 @@ namespace Bootstrap.DataAccess } #region 数据库脚本执行日志相关代码 - private static BlockingCollection _messageQueue = new BlockingCollection(new ConcurrentQueue()); + private static readonly BlockingCollection _messageQueue = new BlockingCollection(new ConcurrentQueue()); /// /// 添加数据库日志实体类到内部集合中 /// @@ -84,10 +84,8 @@ namespace Bootstrap.DataAccess } if (logs.Any()) { - using (var db = DbManager.Create(enableLog: false)) - { - db.InsertBatch(logs); - } + using var db = DbManager.Create(enableLog: false); + db.InsertBatch(logs); } return System.Threading.Tasks.Task.CompletedTask; } diff --git a/src/admin/Bootstrap.DataAccess/Log.cs b/src/admin/Bootstrap.DataAccess/Log.cs index 256de168..26965c3b 100644 --- a/src/admin/Bootstrap.DataAccess/Log.cs +++ b/src/admin/Bootstrap.DataAccess/Log.cs @@ -29,7 +29,7 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual new Page RetrievePages(PaginationOption po, DateTime? startTime, DateTime? endTime, string? opType) + public new virtual Page RetrievePages(PaginationOption po, DateTime? startTime, DateTime? endTime, string? opType) { if (string.IsNullOrEmpty(po.Order)) po.Order = "desc"; if (string.IsNullOrEmpty(po.Sort)) po.Sort = "LogTime"; @@ -40,7 +40,8 @@ namespace Bootstrap.DataAccess if (!string.IsNullOrEmpty(opType)) sql.Where("CRUD = @0", opType); sql.OrderBy($"{po.Sort} {po.Order}"); - return DbManager.Create().Page(po.PageIndex, po.Limit, sql); + using var db = DbManager.Create(); + return db.Page(po.PageIndex, po.Limit, sql); } /// @@ -50,7 +51,7 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual new IEnumerable RetrieveAll(DateTime? startTime, DateTime? endTime, string? opType) + public new virtual IEnumerable RetrieveAll(DateTime? startTime, DateTime? endTime, string? opType) { var sql = new Sql("select CRUD, UserName, LogTime, Ip, Browser, OS, City, RequestUrl, RequestData from Logs"); if (startTime.HasValue) sql.Where("LogTime >= @0", startTime.Value); @@ -58,7 +59,8 @@ namespace Bootstrap.DataAccess if (!string.IsNullOrEmpty(opType)) sql.Where("CRUD = @0", opType); sql.OrderBy("LogTime"); - return DbManager.Create().Fetch(sql); + using var db = DbManager.Create(); + return db.Fetch(sql); } /// @@ -70,7 +72,8 @@ namespace Bootstrap.DataAccess System.Threading.Tasks.Task.Run(() => { var dtm = DateTime.Now.AddMonths(0 - DictHelper.RetrieveLogsPeriod()); - DbManager.Create().Execute("delete from Logs where LogTime < @0", dtm); + using var db = DbManager.Create(); + db.Execute("delete from Logs where LogTime < @0", dtm); }); } @@ -83,7 +86,8 @@ namespace Bootstrap.DataAccess { if (p == null) throw new ArgumentNullException(nameof(p)); DeleteLogAsync(); - DbManager.Create().Save(p); + using var db = DbManager.Create(); + db.Save(p); return true; } } diff --git a/src/admin/Bootstrap.DataAccess/Menu.cs b/src/admin/Bootstrap.DataAccess/Menu.cs index 38af03a8..82e4a754 100644 --- a/src/admin/Bootstrap.DataAccess/Menu.cs +++ b/src/admin/Bootstrap.DataAccess/Menu.cs @@ -20,8 +20,8 @@ namespace Bootstrap.DataAccess public virtual bool Delete(IEnumerable value) { if (!value.Any()) return true; - var ret = false; - var db = DbManager.Create(); + using var db = DbManager.Create(); + bool ret; try { db.BeginTransaction(); @@ -50,7 +50,8 @@ namespace Bootstrap.DataAccess if (p.Name.Length > 50) p.Name = p.Name.Substring(0, 50); if (p.Icon != null && p.Icon.Length > 50) p.Icon = p.Icon.Substring(0, 50); if (p.Url != null && p.Url.Length > 4000) p.Url = p.Url.Substring(0, 4000); - DbManager.Create().Save(p); + using var db = DbManager.Create(); + db.Save(p); return true; } @@ -61,7 +62,8 @@ namespace Bootstrap.DataAccess /// public virtual IEnumerable RetrieveMenusByRoleId(string roleId) { - var menus = DbManager.Create().Fetch("select NavigationID as Id from NavigationRole where RoleID = @0", roleId); + using var db = DbManager.Create(); + var menus = db.Fetch("select NavigationID as Id from NavigationRole where RoleID = @0", roleId); #pragma warning disable CS8619 // 值中的引用类型的为 Null 性与目标类型不匹配。 return menus.Select(m => m.Id); #pragma warning restore CS8619 // 值中的引用类型的为 Null 性与目标类型不匹配。 @@ -76,7 +78,7 @@ namespace Bootstrap.DataAccess public virtual bool SaveMenusByRoleId(string roleId, IEnumerable menuIds) { bool ret = false; - var db = DbManager.Create(); + using var db = DbManager.Create(); try { db.BeginTransaction(); diff --git a/src/admin/Bootstrap.DataAccess/Message.cs b/src/admin/Bootstrap.DataAccess/Message.cs index 198143d9..e0aa1f61 100644 --- a/src/admin/Bootstrap.DataAccess/Message.cs +++ b/src/admin/Bootstrap.DataAccess/Message.cs @@ -92,7 +92,7 @@ namespace Bootstrap.DataAccess /// protected virtual IEnumerable Retrieves(string userName) { - var db = DbManager.Create(); + using var db = DbManager.Create(); var t = db.Provider.EscapeSqlIdentifier("To"); var f = db.Provider.EscapeSqlIdentifier("From"); return db.Fetch($"select m.*, d.Name, u.DisplayName from Messages m left join Dicts d on m.Label = d.Code and d.Category = @0 and d.Define = 0 inner join Users u on m.{f} = u.UserName where {t} = @1 or {f} = @1 order by SendTime desc", "消息标签", userName); @@ -167,7 +167,7 @@ namespace Bootstrap.DataAccess /// public virtual bool Save(Message msg) { - var db = DbManager.Create(); + using var db = DbManager.Create(); db.Save(msg); return true; } diff --git a/src/admin/Bootstrap.DataAccess/ResetUsers.cs b/src/admin/Bootstrap.DataAccess/ResetUsers.cs index e34ad9ad..8299aee3 100644 --- a/src/admin/Bootstrap.DataAccess/ResetUsers.cs +++ b/src/admin/Bootstrap.DataAccess/ResetUsers.cs @@ -42,7 +42,8 @@ namespace Bootstrap.DataAccess /// public virtual bool Save(ResetUser user) { - DbManager.Create().Save(user); + using var db = DbManager.Create(); + db.Save(user); return true; } @@ -51,13 +52,21 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual ResetUser RetrieveUserByUserName(string userName) => DbManager.Create().FirstOrDefault("where UserName = @0 order by ResetTime desc", userName); + public virtual ResetUser RetrieveUserByUserName(string userName) + { + using var db = DbManager.Create(); + return db.FirstOrDefault("where UserName = @0 order by ResetTime desc", userName); + } /// /// /// /// /// - public virtual IEnumerable> RetrieveResetReasonsByUserName(string userName) => DbManager.Create().Fetch("where UserName = @0 order by ResetTime desc", userName).Select(user => new KeyValuePair(user.ResetTime, user.Reason)); + public virtual IEnumerable> RetrieveResetReasonsByUserName(string userName) + { + using var db = DbManager.Create(); + return db.Fetch("where UserName = @0 order by ResetTime desc", userName).Select(user => new KeyValuePair(user.ResetTime, user.Reason)); + } } } diff --git a/src/admin/Bootstrap.DataAccess/Role.cs b/src/admin/Bootstrap.DataAccess/Role.cs index 2a2b25b1..7f42457d 100644 --- a/src/admin/Bootstrap.DataAccess/Role.cs +++ b/src/admin/Bootstrap.DataAccess/Role.cs @@ -37,7 +37,11 @@ namespace Bootstrap.DataAccess /// 查询所有角色 /// /// - public virtual IEnumerable Retrieves() => DbManager.Create().Fetch(); + public virtual IEnumerable Retrieves() + { + using var db = DbManager.Create(); + return db.Fetch(); + } /// /// 保存用户角色关系 @@ -48,7 +52,7 @@ namespace Bootstrap.DataAccess public virtual bool SaveByUserId(string userId, IEnumerable roleIds) { var ret = false; - var db = DbManager.Create(); + using var db = DbManager.Create(); try { db.BeginTransaction(); @@ -70,7 +74,11 @@ namespace Bootstrap.DataAccess /// 查询某个用户所拥有的角色 /// /// - public virtual IEnumerable RetrievesByUserId(string userId) => DbManager.Create().Fetch("select r.ID, r.RoleName, r.Description, case ur.RoleID when r.ID then 'checked' else '' end Checked from Roles r left join UserRole ur on r.ID = ur.RoleID and UserID = @0", userId); + public virtual IEnumerable RetrievesByUserId(string userId) + { + using var db = DbManager.Create(); + return db.Fetch("select r.ID, r.RoleName, r.Description, case ur.RoleID when r.ID then 'checked' else '' end Checked from Roles r left join UserRole ur on r.ID = ur.RoleID and UserID = @0", userId); + } /// /// 删除角色表 @@ -79,9 +87,9 @@ namespace Bootstrap.DataAccess public virtual bool Delete(IEnumerable value) { if (!value.Any()) return true; - bool ret = false; + var ret = false; var ids = string.Join(",", value); - var db = DbManager.Create(); + using var db = DbManager.Create(); try { db.BeginTransaction(); @@ -110,7 +118,8 @@ namespace Bootstrap.DataAccess if (!string.IsNullOrEmpty(p.RoleName) && p.RoleName.Length > 50) p.RoleName = p.RoleName.Substring(0, 50); if (!string.IsNullOrEmpty(p.Description) && p.Description.Length > 50) p.Description = p.Description.Substring(0, 500); - DbManager.Create().Save(p); + using var db = DbManager.Create(); + db.Save(p); return true; } @@ -119,7 +128,11 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual IEnumerable RetrievesByMenuId(string menuId) => DbManager.Create().Fetch("select r.ID, r.RoleName, r.Description, case ur.RoleID when r.ID then 'checked' else '' end Checked from Roles r left join NavigationRole ur on r.ID = ur.RoleID and NavigationID = @0", menuId); + public virtual IEnumerable RetrievesByMenuId(string menuId) + { + using var db = DbManager.Create(); + return db.Fetch("select r.ID, r.RoleName, r.Description, case ur.RoleID when r.ID then 'checked' else '' end Checked from Roles r left join NavigationRole ur on r.ID = ur.RoleID and NavigationID = @0", menuId); + } /// /// @@ -130,7 +143,7 @@ namespace Bootstrap.DataAccess public virtual bool SavaByMenuId(string menuId, IEnumerable roleIds) { var ret = false; - var db = DbManager.Create(); + using var db = DbManager.Create(); db.BeginTransaction(); try { @@ -153,7 +166,11 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual IEnumerable RetrievesByGroupId(string groupId) => DbManager.Create().Fetch("select r.ID, r.RoleName, r.Description, case ur.RoleID when r.ID then 'checked' else '' end Checked from Roles r left join RoleGroup ur on r.ID = ur.RoleID and GroupID = @0", groupId); + public virtual IEnumerable RetrievesByGroupId(string groupId) + { + using var db = DbManager.Create(); + return db.Fetch("select r.ID, r.RoleName, r.Description, case ur.RoleID when r.ID then 'checked' else '' end Checked from Roles r left join RoleGroup ur on r.ID = ur.RoleID and GroupID = @0", groupId); + } /// /// 根据GroupId更新Roles信息,删除旧的Roles信息,插入新的Roles信息 diff --git a/src/admin/Bootstrap.DataAccess/Task.cs b/src/admin/Bootstrap.DataAccess/Task.cs index 3bcb37a5..40259512 100644 --- a/src/admin/Bootstrap.DataAccess/Task.cs +++ b/src/admin/Bootstrap.DataAccess/Task.cs @@ -55,7 +55,11 @@ namespace Bootstrap.DataAccess /// 查询所有任务 /// /// - public virtual IEnumerable Retrieves() => DbManager.Create().SkipTake(0, 1000, "select t.*, u.DisplayName AssignDisplayName from Tasks t inner join Users u on t.UserName = u.UserName order by AssignTime desc"); + public virtual IEnumerable Retrieves() + { + using var db = DbManager.Create(); + return db.SkipTake(0, 1000, "select t.*, u.DisplayName AssignDisplayName from Tasks t inner join Users u on t.UserName = u.UserName order by AssignTime desc"); + } /// /// @@ -64,7 +68,8 @@ namespace Bootstrap.DataAccess /// public virtual bool Save(Task task) { - DbManager.Create().Save(task); + using var db = DbManager.Create(); + db.Save(task); return true; } } diff --git a/src/admin/Bootstrap.DataAccess/Trace.cs b/src/admin/Bootstrap.DataAccess/Trace.cs index 660aa2d3..d50d01e4 100644 --- a/src/admin/Bootstrap.DataAccess/Trace.cs +++ b/src/admin/Bootstrap.DataAccess/Trace.cs @@ -67,8 +67,8 @@ namespace Bootstrap.DataAccess /// public virtual bool Save(Trace p) { - if (p == null) throw new ArgumentNullException(nameof(p)); - DbManager.Create().Save(p); + using var db = DbManager.Create(); + db.Save(p); ClearTraces(); return true; } @@ -92,7 +92,8 @@ namespace Bootstrap.DataAccess if (!string.IsNullOrEmpty(ip)) sql.Where("IP = @0", ip); sql.OrderBy($"{po.Sort} {po.Order}"); - return DbManager.Create().Page(po.PageIndex, po.Limit, sql); + using var db = DbManager.Create(); + return db.Page(po.PageIndex, po.Limit, sql); } /// @@ -110,12 +111,14 @@ namespace Bootstrap.DataAccess if (!string.IsNullOrEmpty(ip)) sql.Where("IP = @0", ip); sql.OrderBy("LogTime"); - return DbManager.Create().Fetch(sql); + using var db = DbManager.Create(); + return db.Fetch(sql); } private static void ClearTraces() => System.Threading.Tasks.Task.Run(() => { - DbManager.Create().Execute("delete from Traces where LogTime < @0", DateTime.Now.AddMonths(0 - DictHelper.RetrieveAccessLogPeriod())); + using var db = DbManager.Create(); + return db.Execute("delete from Traces where LogTime < @0", DateTime.Now.AddMonths(0 - DictHelper.RetrieveAccessLogPeriod())); }); } } diff --git a/src/admin/Bootstrap.DataAccess/User.cs b/src/admin/Bootstrap.DataAccess/User.cs index 1ec1feec..5ad8f489 100644 --- a/src/admin/Bootstrap.DataAccess/User.cs +++ b/src/admin/Bootstrap.DataAccess/User.cs @@ -87,7 +87,8 @@ namespace Bootstrap.DataAccess /// public virtual bool Authenticate(string userName, string password) { - var user = DbManager.Create().SingleOrDefault("select Password, PassSalt from Users where ApprovedTime is not null and UserName = @0", userName); + using var db = DbManager.Create(); + var user = db.SingleOrDefault("select Password, PassSalt from Users where ApprovedTime is not null and UserName = @0", userName); return user != null && !string.IsNullOrEmpty(user.PassSalt) && user.Password == LgbCryptography.ComputeHash(password, user.PassSalt); } @@ -98,7 +99,11 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual bool SaveApp(string userName, string app) => DbManager.Create().Update("set App = @1 where UserName = @0", userName, app) == 1; + public virtual bool SaveApp(string userName, string app) + { + using var db = DbManager.Create(); + return db.Update("set App = @1 where UserName = @0", userName, app) == 1; + } /// /// 更改密码方法 @@ -115,7 +120,8 @@ namespace Bootstrap.DataAccess string sql = "set Password = @0, PassSalt = @1 where UserName = @2"; var passSalt = LgbCryptography.GenerateSalt(); var newPassword = LgbCryptography.ComputeHash(newPass, passSalt); - ret = DbManager.Create().Update(sql, newPassword, passSalt, userName) == 1; + using var db = DbManager.Create(); + ret = db.Update(sql, newPassword, passSalt, userName) == 1; } return ret; } @@ -124,13 +130,21 @@ namespace Bootstrap.DataAccess /// 查询所有用户 /// /// - public virtual IEnumerable Retrieves() => DbManager.Create().Fetch("select u.ID, u.UserName, u.DisplayName, RegisterTime, ApprovedTime, ApprovedBy, Description, ru.IsReset from Users u left join (select 1 as IsReset, UserName from ResetUsers group by UserName) ru on u.UserName = ru.UserName Where ApprovedTime is not null"); + public virtual IEnumerable Retrieves() + { + using var db = DbManager.Create(); + return db.Fetch("select u.ID, u.UserName, u.DisplayName, RegisterTime, ApprovedTime, ApprovedBy, Description, ru.IsReset from Users u left join (select 1 as IsReset, UserName from ResetUsers group by UserName) ru on u.UserName = ru.UserName Where ApprovedTime is not null"); + } /// /// 查询所有的新注册用户 /// /// - public virtual IEnumerable RetrieveNewUsers() => DbManager.Create().Fetch("select ID, UserName, DisplayName, RegisterTime, Description from Users Where ApprovedTime is null order by RegisterTime desc"); + public virtual IEnumerable RetrieveNewUsers() + { + using var db = DbManager.Create(); + return db.Fetch("select ID, UserName, DisplayName, RegisterTime, Description from Users Where ApprovedTime is null order by RegisterTime desc"); + } /// /// 删除用户 @@ -139,8 +153,8 @@ namespace Bootstrap.DataAccess public virtual bool Delete(IEnumerable value) { if (!value.Any()) return true; - bool ret = false; - var db = DbManager.Create(); + using var db = DbManager.Create(); + bool ret; try { var ids = string.Join(",", value); @@ -174,7 +188,7 @@ namespace Bootstrap.DataAccess string sql = "set Password = @0, PassSalt = @1 where UserName = @2"; var passSalt = LgbCryptography.GenerateSalt(); var newPassword = LgbCryptography.ComputeHash(password, passSalt); - var db = DbManager.Create(); + using var db = DbManager.Create(); try { db.BeginTransaction(); @@ -208,7 +222,7 @@ namespace Bootstrap.DataAccess user.Password = LgbCryptography.ComputeHash(user.Password, user.PassSalt); user.RegisterTime = DateTime.Now; - var db = DbManager.Create(); + using var db = DbManager.Create(); bool ret; try { @@ -240,7 +254,8 @@ namespace Bootstrap.DataAccess { var passSalt = LgbCryptography.GenerateSalt(); var newPassword = LgbCryptography.ComputeHash(password, passSalt); - return DbManager.Create().Update("set Password = @1, PassSalt = @2, DisplayName = @3 where ID = @0", id, newPassword, passSalt, displayName) == 1; + using var db = DbManager.Create(); + return db.Update("set Password = @1, PassSalt = @2, DisplayName = @3 where ID = @0", id, newPassword, passSalt, displayName) == 1; } /// @@ -249,7 +264,11 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual bool Approve(string id, string approvedBy) => DbManager.Create().Update("set ApprovedTime = @1, ApprovedBy = @2 where ID = @0", id, DateTime.Now, approvedBy) == 1; + public virtual bool Approve(string id, string approvedBy) + { + using var db = DbManager.Create(); + return db.Update("set ApprovedTime = @1, ApprovedBy = @2 where ID = @0", id, DateTime.Now, approvedBy) == 1; + } /// /// 拒绝新用户方法 @@ -259,8 +278,8 @@ namespace Bootstrap.DataAccess /// public virtual bool Reject(string id, string rejectBy) { + using var db = DbManager.Create(); var ret = false; - var db = DbManager.Create(); try { db.BeginTransaction(); @@ -284,7 +303,11 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual IEnumerable RetrievesByRoleId(string roleId) => DbManager.Create().Fetch("select u.ID, u.UserName, u.DisplayName, case ur.UserID when u.ID then 'checked' else '' end Checked from Users u left join UserRole ur on u.ID = ur.UserID and RoleID = @0 where u.ApprovedTime is not null", roleId); + public virtual IEnumerable RetrievesByRoleId(string roleId) + { + using var db = DbManager.Create(); + return db.Fetch("select u.ID, u.UserName, u.DisplayName, case ur.UserID when u.ID then 'checked' else '' end Checked from Users u left join UserRole ur on u.ID = ur.UserID and RoleID = @0 where u.ApprovedTime is not null", roleId); + } /// /// 通过角色ID保存当前授权用户(插入) @@ -294,7 +317,7 @@ namespace Bootstrap.DataAccess /// public virtual bool SaveByRoleId(string roleId, IEnumerable userIds) { - bool ret = false; + var ret = false; var db = DbManager.Create(); try { @@ -318,7 +341,11 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual IEnumerable RetrievesByGroupId(string groupId) => DbManager.Create().Fetch("select u.ID, u.UserName, u.DisplayName, case ur.UserID when u.ID then 'checked' else '' end Checked from Users u left join UserGroup ur on u.ID = ur.UserID and GroupID = @0 where u.ApprovedTime is not null", groupId); + public virtual IEnumerable RetrievesByGroupId(string groupId) + { + using var db = DbManager.Create(); + return db.Fetch("select u.ID, u.UserName, u.DisplayName, case ur.UserID when u.ID then 'checked' else '' end Checked from Users u left join UserGroup ur on u.ID = ur.UserID and GroupID = @0 where u.ApprovedTime is not null", groupId); + } /// /// 通过部门ID保存当前授权用户(插入) @@ -328,8 +355,8 @@ namespace Bootstrap.DataAccess /// public virtual bool SaveByGroupId(string groupId, IEnumerable userIds) { - bool ret = false; - var db = DbManager.Create(); + var ret = false; + using var db = DbManager.Create(); try { db.BeginTransaction(); @@ -353,7 +380,11 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual bool SaveUserIconByName(string userName, string iconName) => DbManager.Create().Update("set Icon = @1 where UserName = @0", userName, iconName) == 1; + public virtual bool SaveUserIconByName(string userName, string iconName) + { + using var db = DbManager.Create(); + return db.Update("set Icon = @1 where UserName = @0", userName, iconName) == 1; + } /// /// 保存显示名称方法 @@ -361,7 +392,11 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual bool SaveDisplayName(string userName, string displayName) => DbManager.Create().Update("set DisplayName = @1 where UserName = @0", userName, displayName) == 1; + public virtual bool SaveDisplayName(string userName, string displayName) + { + using var db = DbManager.Create(); + return db.Update("set DisplayName = @1 where UserName = @0", userName, displayName) == 1; + } /// /// 根据用户名更改用户皮肤 @@ -369,7 +404,11 @@ namespace Bootstrap.DataAccess /// /// /// - public virtual bool SaveUserCssByName(string userName, string cssName) => DbManager.Create().Update("set Css = @1 where UserName = @0", userName, cssName) == 1; + public virtual bool SaveUserCssByName(string userName, string cssName) + { + using var db = DbManager.Create(); + return db.Update("set Css = @1 where UserName = @0", userName, cssName) == 1; + } /// /// 获得指定用户方法