public async Task <IdentityUserDto> UpdateAsync(Guid id, BaseIdentityUserUpdateDto input) { var user = await UserManager.GetByIdAsync(id); user.ConcurrencyStamp = input.ConcurrencyStamp; (await UserManager.SetUserNameAsync(user, input.UserName)).CheckErrors(); await UpdateUserByInput(user, input); input.MapExtraPropertiesTo(user); (await UserManager.UpdateAsync(user)).CheckErrors(); if (!input.Password.IsNullOrEmpty()) { (await UserManager.RemovePasswordAsync(user)).CheckErrors(); (await UserManager.AddPasswordAsync(user, input.Password)).CheckErrors(); } var dto = ObjectMapper.Map <IdentityUser, IdentityUserDto>(user); await _userJobsRepository.DeleteAsync(_ => _.UserId == id); foreach (var jid in input.JobIds) { await _userJobsRepository.InsertAsync(new UserJob(CurrentTenant.Id, id, jid)); } await _userOrgsRepository.DeleteAsync(_ => _.UserId == id); foreach (var oid in input.OrganizationIds) { await _userOrgsRepository.InsertAsync(new UserOrganization(CurrentTenant.Id, id, oid)); } await CurrentUnitOfWork.SaveChangesAsync(); return(dto); }
public Task <IdentityUserDto> UpdateAsync(Guid id, BaseIdentityUserUpdateDto input) { return(_userAppService.UpdateAsync(id, input)); }