public async Task <IActionResult> EditUserRoles([FromBody] PortalUserWithRolesResource userResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = await _userManager.FindByIdAsync(userResource.IdentityId); if (user == null) { return(NotFound()); } var userRoles = await _userManager.GetRolesAsync(user); var allRoles = _roleManager.Roles.ToList(); var addedRoles = userResource.UserRoles?.Except(userRoles); var removedRoles = userRoles.Except(userResource.UserRoles); await _userManager.AddToRolesAsync(user, addedRoles); await _userManager.RemoveFromRolesAsync(user, removedRoles); return(Ok("Success")); }
public async Task <PortalUserWithRolesResource> GetById(string id) { var user = await UnitOfWork.Repository <PortalUser>().GetSingleIcludeMultipleAsync(x => x.IdentityId == id, x => x.Identity); var res = new PortalUserWithRolesResource(); if (user != null) { res.IdentityId = user.IdentityId; res.UserRoles = await _userManager.GetRolesAsync(user.Identity); res.AllRoles = _roleManager.Roles.Select(x => x.Name).ToList(); res.FirstName = user.Identity.FirstName; res.SecondName = user.Identity.SecondName; res.LastName = user.Identity.LastName; } return(res); }