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;
            }
        }