public async Task <AppUserDTOOut> UpdateRole(string id, AppUserDTOIn appUserDTOIn) { logger.Info($"Accessing db over auth repo, find user by id {id}, user service, update role"); AppUser user = await db.AuthRepository.FindUserById(id); if (user == null) { logger.Info("Throwing an user not found exception, no user found update role, user service"); throw new UserNotFoundException($"User with ID {id} does not exists."); } logger.Info("Sending user to find new role name by ID, user service, update role"); IdentityRole roleById = await db.AuthRepository.FindRoleById(appUserDTOIn.RoleId); user.Roles.Clear(); var result = await db.AuthRepository.UpdateRole(user.Id, roleById.Name); if (!result.Succeeded) { logger.Info("Role update failed, result not succeeded, user service"); return(null); } AppUserDTOOut appUserDTO = new AppUserDTOOut() { Id = user.Id, FirstName = user.FirstName, LastName = user.LastName, UserName = user.UserName, RoleId = roleById.Id }; return(appUserDTO); }
public async Task <IHttpActionResult> PutRole(string id, AppUserDTOIn userModel) { string userId = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value; if (!id.Equals(userModel.Id)) { logger.Info("Id does not match, put role, account controller"); return(BadRequest("Id not match")); } logger.Info($"Aadmin {userId} sent {userModel.UserName} to user service, put role"); var updatedRole = await service.UpdateRole(id, userModel); if (updatedRole == null) { logger.Info($"User role {userModel.UserName} has not been updated. Update failed, put role."); return(NotFound()); } return(Ok(updatedRole)); }