public async Task <IdentityResult> UpdateAsAdmin(ApplicationUserUpdateDto input) { if (!input.IsUpdateEntry()) { throw new EntityNotFoundException(); } var user = await UserManager.FindByIdAsync(input.Id); if (user == null) { throw new EntityNotFoundException(); } var updateUser = input.MapTo <ApplicationUser>(); updateUser.UserName = input.Email; await UserManager.UpdateAsync(updateUser); var userRoles = await UserManager.GetRolesAsync(user.Id); input.SelectedRoles = input.SelectedRoles ?? new string[] { }; var result = await UserManager.AddToRolesAsync(user.Id, input.SelectedRoles.Except(userRoles).ToArray <string>()); if (!result.Succeeded) { return(result); } result = await UserManager.RemoveFromRolesAsync(user.Id, userRoles.Except(input.SelectedRoles).ToArray <string>()); return(result); }
public async Task <IHttpActionResult> Put(ApplicationUserUpdateDto input) { input.Id = User.Identity.GetUserId(); var result = await _service.Update(input); return(Ok(result)); }
public async Task <bool> Update(ApplicationUserUpdateDto input) { if (!input.IsUpdateEntry()) { throw new EntityNotFoundException(); } var user = await UserManager.FindByIdAsync(input.Id); var userRoles = await UserManager.GetRolesAsync(user.Id); var userOriginal = UnitOfWork.AppContext.Users.Find(user.Id); if (user == null) { throw new EntityNotFoundException(); } var updateUser = input.MapTo <ApplicationUser>(); updateUser.Email = user.Email; updateUser.UserName = user.Email; updateUser.PasswordHash = userOriginal.PasswordHash; updateUser.SecurityStamp = userOriginal.SecurityStamp; Mapper.Map(updateUser, user); await UserManager.UpdateAsync(user); //input.SelectedRoles = input.SelectedRoles ?? new string[] { }; var result = await UserManager.AddToRolesAsync(user.Id, userRoles.ToArray <string>()); if (!result.Succeeded) { return(false); } //result = await UserManager.RemoveFromRolesAsync(user.Id, userRoles.Except(input.SelectedRoles).ToArray<string>()); //if (!result.Succeeded) //{ // return false; //} return(true); }
public async Task <IHttpActionResult> PutAsAdmin(ApplicationUserUpdateDto input) { var result = await _service.Update(input); return(Ok(result)); }