public bool DeleteRoleFunction(int roleID, string functionID) { try { if (string.IsNullOrEmpty(functionID)) { throw new KnownException("参数无效!"); } using (var db = new BCBackContext()) { RFAAuthorization au = new RFAAuthorization { RoleID = roleID, FunctionID = functionID }; db.RFAAuthorizations.Attach(au); db.RFAAuthorizations.Remove(au); if (1 == db.SaveChanges()) { return(true); } else { return(false); } } } catch (Exception ex) { throw ex; } }
private List <AuthorizationsDto> SetFunction(int roleID, string functionIDs) { try { if (0 > roleID || string.IsNullOrEmpty(functionIDs)) { throw new KnownException("参数无效!"); } // 返回设置完成后的角色功能信息 var list = new List <AuthorizationsDto>(); var strS = functionIDs.Split('|'); var listFuc = strS.ToList(); using (var db = new BCBackContext()) { foreach (var funId in listFuc) { // 更新或者添加功能 var au = new RFAAuthorization() { RoleID = roleID, FunctionID = funId, UpdateTime = DateTime.Now }; db.RFAAuthorizations.AddOrUpdate(au); } // 删除不再具有的功能 var query = db.RFAAuthorizations.Where(obj => obj.RoleID == roleID).Select(obj => obj.FunctionID).ToList(); foreach (var f in query) { if (!listFuc.Contains(f)) { var del = db.RFAAuthorizations.FirstOrDefault(obj => obj.RoleID == roleID && obj.FunctionID == f); db.RFAAuthorizations.Remove(del); } } if (0 < db.SaveChanges()) { foreach (var fun in listFuc) { list.Add(db.RFAAuthorizations.FirstOrDefault(obj => obj.RoleID == roleID && obj.FunctionID == fun)); } } } return(list); } catch (Exception ex) { throw ex; } }