예제 #1
0
        public async Task <IEnumerable <string> > EditUserRoles(int userId, UserRolesListDto userRolesListDto)
        {
            var user = await userManager.FindByIdAsync(userId.ToString());

            var userRoles = await userManager.GetRolesAsync(user);

            var selectedRoles = userRolesListDto.RoleNames;

            selectedRoles = selectedRoles ?? new string[] { };

            var result = await userManager.AddToRolesAsync(user, selectedRoles.Except(userRoles));

            if (!result.Succeeded)
            {
                throw new OperationException("Failed to add the roles.");
            }

            result = await userManager.RemoveFromRolesAsync(user, userRoles.Except(selectedRoles));

            if (!result.Succeeded)
            {
                throw new OperationException("Failed to remove the roles.");
            }

            return(await userManager.GetRolesAsync(user));
        }
예제 #2
0
 public async Task <IActionResult> EditRoles(int userId, UserRolesListDto userRolesListDto)
 {
     try
     {
         return(Ok(await adminRepository.EditUserRoles(userId, userRolesListDto)));
     }
     catch (OperationException e)
     {
         return(BadRequest(e.Message));
     }
 }