diff --git a/Bootstrap.Admin/Controllers/AdminController.cs b/Bootstrap.Admin/Controllers/AdminController.cs index afe5f811..edb3a982 100644 --- a/Bootstrap.Admin/Controllers/AdminController.cs +++ b/Bootstrap.Admin/Controllers/AdminController.cs @@ -44,17 +44,28 @@ namespace Bootstrap.Admin.Controllers var v = new NavigatorBarModel("~/Admin/Dicts"); return View(v); } - + /// + /// + /// + /// public ActionResult Roles() { var v = new NavigatorBarModel("~/Admin/Roles"); return View(v); } + /// + /// + /// + /// public ActionResult Menus() { var v = new NavigatorBarModel("~/Admin/Menus"); return View(v); } + /// + /// + /// + /// public ActionResult Logs() { var v = new NavigatorBarModel("~/Admin/Logs"); diff --git a/Bootstrap.DataAccess/RoleHelper.cs b/Bootstrap.DataAccess/RoleHelper.cs index 3c06ef22..024b54f9 100644 --- a/Bootstrap.DataAccess/RoleHelper.cs +++ b/Bootstrap.DataAccess/RoleHelper.cs @@ -80,20 +80,20 @@ namespace Bootstrap.DataAccess { cmd.Parameters.Add(DBAccessManager.SqlDBAccess.CreateParameter("@UserID", id, ParameterDirection.Input)); DBAccessManager.SqlDBAccess.ExecuteNonQuery(cmd, transaction); - - // insert batch data into config table - using (SqlBulkCopy bulk = new SqlBulkCopy((SqlConnection)transaction.Transaction.Connection, SqlBulkCopyOptions.Default, (SqlTransaction)transaction.Transaction)) + if (dt.Rows.Count > 0) { - bulk.BatchSize = 1000; - bulk.DestinationTableName = "UserRole"; - bulk.ColumnMappings.Add("UserID", "UserID"); - bulk.ColumnMappings.Add("RoleID", "RoleID"); - bulk.WriteToServer(dt); - transaction.CommitTransaction(); + // insert batch data into config table + using (SqlBulkCopy bulk = new SqlBulkCopy((SqlConnection)transaction.Transaction.Connection, SqlBulkCopyOptions.Default, (SqlTransaction)transaction.Transaction)) + { + bulk.DestinationTableName = "UserRole"; + bulk.ColumnMappings.Add("UserID", "UserID"); + bulk.ColumnMappings.Add("RoleID", "RoleID"); + bulk.WriteToServer(dt); + } } + transaction.CommitTransaction(); } - roleIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).AsParallel() - .ForAll(r => CacheManager.Clear(key => key == string.Format("{0}-{1}", RetrieveRolesByUserIDDataKey, id) || key == string.Format("{0}-{1}", UserHelper.RetrieveUsersByRoleIDDataKey, r))); + CacheCleanUtility.ClearCache(userIds: id.ToString(), roleIds: roleIds); ret = true; } catch (Exception ex)