public async Task <IActionResult> UpdateUser([FromRoute] long id, [FromBody] UserModel.UserForCreate user) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != user.Id) { return(BadRequest()); } var originUser = _context.User.SingleOrDefault(u => u.Id == id); if (originUser == null) { return(NotFound()); } originUser.UserName = user.Username; originUser.NormalizedEmail = user.EmailAddress.ToUpper(); originUser.Name = user.Name; originUser.IsActive = user.IsActive; originUser.Surname = user.Surname; originUser.NormalizedUserName = user.Username.ToUpper(); originUser.Email = user.EmailAddress; originUser.EmailConfirmed = user.SendActivationEmail; if (!string.IsNullOrEmpty(user.Password)) { var passwd = _userManager.PasswordHasher.HashPassword(originUser, user.Password); originUser.PasswordHash = passwd; } try { await _context.SaveChangesAsync(); var currentUserRoles = _context.UserRoles.Where(r => r.UserId == user.Id); _context.UserRoles.RemoveRange(currentUserRoles); foreach (var roleName in user.AssignedRoleNames) { var role = _context.Role.SingleOrDefault(r => r.RoleName == roleName); if (role != null) { await _context.UserRoles.AddAsync(new UserRole(originUser.Id, role.Id)); } } await _context.SaveChangesAsync(); return(CreatedAtAction("GetUser", new { id = originUser.Id }, originUser)); } catch (Exception) { return(BadRequest()); } }
public async Task <IActionResult> AddUser([FromBody] UserModel.UserForCreate user) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (_context.User.Any(e => e.UserName == user.Username)) { return(Ok(false)); } var newUser = new User() { UserName = user.Username, NormalizedEmail = user.EmailAddress.ToUpper(), Name = user.Name, IsActive = user.IsActive, Surname = user.Surname, NormalizedUserName = user.Username.ToUpper(), Email = user.EmailAddress, EmailConfirmed = user.SendActivationEmail }; var passwd = _userManager.PasswordHasher.HashPassword(newUser, user.Password); newUser.PasswordHash = passwd; try { await _context.User.AddAsync(newUser); foreach (var roleName in user.AssignedRoleNames) { var role = _context.Role.SingleOrDefault(r => r.RoleName == roleName); if (role != null) { await _context.UserRoles.AddAsync(new UserRole(newUser.Id, role.Id)); } } await _context.SaveChangesAsync(); return(CreatedAtAction("GetUser", new { id = newUser.Id }, newUser)); } catch (Exception) { return(BadRequest()); } //_context.User.Add(user); //await _context.SaveChangesAsync(); //return CreatedAtAction("GetUser", new { id = user.Id }, user); }