public void MoveMenuItems(short mode, int menuId, string roleId)
        {
            var ids       = roleId.Split(',').Select(o => int.Parse(o)).ToArray();
            var roleDatas = RoleDataRepository.GetQuery(o => ids.Contains(o.RoleId)).ToList();
            var obj       = roleDatas.FirstOrDefault(o => o.RoleId == ids[0] && o.MenuId == menuId);
            var list      = roleDatas.Where(o => o.RoleId == ids[0] && o.PMenuId == obj.PMenuId).OrderBy(o => o.SortOrder).ToList();

            switch (mode)
            {
            case 2:    //下移
                var obj1 = list.LastOrDefault();
                if (obj.Id != obj1.Id)
                {
                    Entity.SysRoleData next = null;
                    for (var i = 0; i < list.Count; i++)
                    {
                        if (obj.Id == list[i].Id)
                        {
                            next = list[i + 1]; break;
                        }
                    }
                    if (next != null)
                    {
                        var sort = obj.SortOrder;
                        roleDatas.Where(o => o.MenuId == obj.MenuId).Each(o => o.SortOrder  = next.SortOrder);
                        roleDatas.Where(o => o.MenuId == next.MenuId).Each(o => o.SortOrder = sort);
                        RoleRepository.SaveChanges();
                    }
                }
                break;

            default:    //上移
                var obj2 = list.FirstOrDefault();
                if (obj.Id != obj2.Id)
                {
                    Entity.SysRoleData prev = null;
                    for (var i = 0; i < list.Count; i++)
                    {
                        if (obj.Id == list[i].Id)
                        {
                            prev = list[i - 1]; break;
                        }
                    }
                    if (prev != null)
                    {
                        var sort = obj.SortOrder;
                        roleDatas.Where(o => o.MenuId == obj.MenuId).Each(o => o.SortOrder  = prev.SortOrder);
                        roleDatas.Where(o => o.MenuId == prev.MenuId).Each(o => o.SortOrder = sort);
                        RoleRepository.SaveChanges();
                    }
                }
                break;
            }
        }
        public void MoveMenuItem(short mode, int menuId, int roleId)
        {
            var role = RoleRepository.GetQuery(o => o.RoleId == roleId).Include(o => o.SysRoleDatas).FirstOrDefault();
            var obj  = role.SysRoleDatas.FirstOrDefault(o => o.MenuId == menuId);
            var list = role.SysRoleDatas.Where(o => o.PMenuId == obj.PMenuId).OrderBy(o => o.SortOrder).ToList();

            switch (mode)
            {
            case 2:    //下移
                var obj1 = list.LastOrDefault();
                if (obj.Id != obj1.Id)
                {
                    Entity.SysRoleData next = null;
                    for (var i = 0; i < list.Count; i++)
                    {
                        if (obj.Id == list[i].Id)
                        {
                            next = list[i + 1]; break;
                        }
                    }
                    if (next != null)
                    {
                        var sort = obj.SortOrder;
                        obj.SortOrder  = next.SortOrder;
                        next.SortOrder = sort;
                        RoleRepository.SaveChanges();
                    }
                }
                break;

            default:    //上移
                var obj2 = list.FirstOrDefault();
                if (obj.Id != obj2.Id)
                {
                    Entity.SysRoleData prev = null;
                    for (var i = 0; i < list.Count; i++)
                    {
                        if (obj.Id == list[i].Id)
                        {
                            prev = list[i - 1]; break;
                        }
                    }
                    if (prev != null)
                    {
                        var sort = obj.SortOrder;
                        obj.SortOrder  = prev.SortOrder;
                        prev.SortOrder = sort;
                        RoleRepository.SaveChanges();
                    }
                }
                break;
            }
        }