예제 #1
0
        private string Copy(HttpContext context)
        {
            string idStr = context.Request["id"];
            long   id    = Convert.ToInt64(idStr);
            PermissionGroupInfo model = bllPms.GetPermissionGroup(null, id);
            string newIdStr           = bllPer.GetGUID(TransacType.PermissionGroupAdd);

            model.GroupID   = Convert.ToInt64(newIdStr);
            model.GroupName = model.GroupName + "—复制";
            //权限组权限关系
            List <PermissionRelationInfo> listPermissionRelation = bllPms.GetPermissionRelationList(idStr, 0);
            //权限组权限栏目关系
            List <PermissionRelationInfo> listPermissionRelation3 = bllPms.GetPermissionRelationList(idStr, 3);

            listPermissionRelation.AddRange(listPermissionRelation3);
            foreach (var item in listPermissionRelation)
            {
                item.RelationID = newIdStr;
            }
            List <MenuRelationInfo> listMenuRelation = bllMenu.GetMenuRelationList(idStr, 0);

            foreach (var item in listMenuRelation)
            {
                item.RelationID = newIdStr;
            }

            BLLTransaction tran   = new BLLTransaction();
            bool           result = bllPer.Add(model, tran);

            if (!result)
            {
                tran.Rollback();
                return("复制权限组失败");
            }
            foreach (var item in listPermissionRelation)
            {
                if (!bllPer.Add(item, tran))
                {
                    tran.Rollback();
                    return("复制权限组权限失败");
                }
            }
            foreach (var item in listMenuRelation)
            {
                if (!bllPer.Add(item, tran))
                {
                    tran.Rollback();
                    return("复制权限组菜单失败");
                }
            }
            tran.Commit();
            return(result.ToString().ToLower());
        }