Exemple #1
0
        /// <summary>
        /// 修改角色菜单
        /// </summary>
        /// <returns></returns>
        public async Task UpdateRoleMenuAsync(ModfiyRoleMenuDto dto, int loginRoleid)
        {
            var roleModel = await roleRespository.SingleOrDefaultAsync(c => c.Id == loginRoleid);

            if (roleModel == null)
            {
                throw new ArgumentException("不能修改角色菜单,登录者的角色不存在了");
            }
            if (!roleModel.IsSuperAdmin)
            {
                throw new ArgumentException("您不是超级管理员不能修改角色");
            }

            var maprm = Map <ModfiyRoleMenuDto, Role>(dto);


            var currRole = await roleRespository.UpdateAsync(maprm); //修改后当前的角色

            var cuuroleId = currRole.Id;

            await roleMenuRepository.ExecuteSqlCommandAsync($"DELETE FROM `wshtzf`.`tws_rolemenu` WHERE RoleId={cuuroleId}");

            var rolemenus = new List <RoleMenu>();

            foreach (var item in dto.MenusId)
            {
                var roleMenu = new RoleMenu()
                {
                    RoleId = cuuroleId,
                    MenuId = item
                };
                rolemenus.Add(roleMenu);
            }
            await roleMenuRepository.InsertEntitiesAsync(rolemenus);

            await roleMenuRepository.UnitOfWork.SaveChangesAsync();
        }