public async Task <IActionResult> GetApplicationUser(string id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var getApplicationUser = await _repo.GetFirstAsync <ApplicationUser>(x => x.Id.Equals(id), null, nameof(ApplicationUser.Roles)); if (!getApplicationUser.Success) { return(NotFound()); } var applicationUser = getApplicationUser.Data; var allRoles = _roleManager.Roles.ToList(); var roles = applicationUser.Roles.Join(allRoles, ur => ur.RoleId, r => r.Id, (userRoles, role) => new string(role.Name.ToCharArray())); var userDto = new UserPreviewDto { Id = applicationUser.Id, FirstName = applicationUser.FirstName, LastName = applicationUser.LastName, Email = applicationUser.Email, UserName = applicationUser.UserName, DateOfBirth = applicationUser.DateOfBirth, Roles = roles.ToList() }; return(Ok(userDto)); }
public async Task <IActionResult> PutApplicationUser([FromRoute] string id, [FromBody] UserPreviewDto userDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { if (id != userDto.Id) { return(BadRequest()); } var user = await _userManager.FindByIdAsync(id); if (user == null) { return(NotFound()); } user.FirstName = userDto.FirstName; user.LastName = userDto.LastName; user.DateOfBirth = userDto.DateOfBirth; var update = await _userManager.UpdateAsync(user); if (update.Succeeded) { return(Ok(true)); } return(Ok(false)); } catch (Exception e) { return(BadRequest(e.Message)); } }