public async Task UpdateAsync() { //Arrange var johnNash = await GetUserAsync("john.nash"); var input = new IdentityUserUpdateDto { UserName = johnNash.UserName, LockoutEnabled = true, TwoFactorEnabled = true, PhoneNumber = CreateRandomPhoneNumber(), Email = CreateRandomEmail() }; //Act var result = await _userAppService.UpdateAsync(johnNash.Id, input); //Assert result.Id.ShouldBe(johnNash.Id); result.UserName.ShouldBe(input.UserName); result.Email.ShouldBe(input.Email); result.LockoutEnabled.ShouldBe(input.LockoutEnabled); result.PhoneNumber.ShouldBe(input.PhoneNumber); var user = await _userRepository.GetAsync(result.Id); user.Id.ShouldBe(result.Id); user.UserName.ShouldBe(input.UserName); user.Email.ShouldBe(input.Email); user.LockoutEnabled.ShouldBe(input.LockoutEnabled); user.PhoneNumber.ShouldBe(input.PhoneNumber); }
public async Task UpdateAsync_Concurrency_Exception() { //Get user var johnNash = await _userAppService.GetAsync(_testData.UserJohnId).ConfigureAwait(false); //Act var input = new IdentityUserUpdateDto { Name = "John-updated", Surname = "Nash-updated", UserName = johnNash.UserName, LockoutEnabled = true, TwoFactorEnabled = true, PhoneNumber = CreateRandomPhoneNumber(), Email = CreateRandomEmail(), RoleNames = new[] { "admin", "moderator" }, ConcurrencyStamp = johnNash.ConcurrencyStamp }; await _userAppService.UpdateAsync(johnNash.Id, input).ConfigureAwait(false); //Second update with same input will throw exception because the entity has been modified (await Assert.ThrowsAsync <AbpIdentityResultException>(async() => { await _userAppService.UpdateAsync(johnNash.Id, input).ConfigureAwait(false); }).ConfigureAwait(false)).Message.ShouldContain("Optimistic concurrency failure"); }
public virtual async Task <IdentityUserDto> UpdateAsync(Guid id, IdentityUserUpdateDto input) { await IdentityOptions.SetAsync(); var user = await UserManager.GetByIdAsync(id); user.SetConcurrencyStampIfNotNull(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(); } await CurrentUnitOfWork.SaveChangesAsync(); return(ObjectMapper.Map <IdentityUser, IdentityUserDto>(user)); }
public async Task <IdentityUserDto> UpdateAsync(Guid id, IdentityUserUpdateDto input) { var user = await _userManager.GetByIdAsync(id); CheckIdentityErrors(await _userManager.SetUserNameAsync(user, input.UserName)); await UpdateUserByInput(user, input); CheckIdentityErrors(await _userManager.UpdateAsync(user)); await CurrentUnitOfWork.SaveChangesAsync(); return(ObjectMapper.Map <IdentityUser, IdentityUserDto>(user)); }
public async Task UpdateAsync() { //Arrange var johnNash = GetUser("john.nash"); var input = new IdentityUserUpdateDto { UserName = johnNash.UserName, LockoutEnabled = true, TwoFactorEnabled = true, PhoneNumber = CreateRandomPhoneNumber(), Password = "******", Email = CreateRandomEmail(), RoleNames = new[] { "admin", "moderator" }, ConcurrencyStamp = johnNash.ConcurrencyStamp, Surname = johnNash.Surname, Name = johnNash.Name }; //Act var result = await _userAppService.UpdateAsync(johnNash.Id, input).ConfigureAwait(false); //Assert result.Id.ShouldBe(johnNash.Id); result.UserName.ShouldBe(input.UserName); result.Email.ShouldBe(input.Email); result.LockoutEnabled.ShouldBe(input.LockoutEnabled); result.PhoneNumber.ShouldBe(input.PhoneNumber); var user = await _userRepository.GetAsync(result.Id).ConfigureAwait(false); user.Id.ShouldBe(result.Id); user.UserName.ShouldBe(input.UserName); user.Email.ShouldBe(input.Email); user.LockoutEnabled.ShouldBe(input.LockoutEnabled); user.PhoneNumber.ShouldBe(input.PhoneNumber); user.Roles.Count.ShouldBe(2); }
public async Task <IdentityUserDto> UpdateAsync(Guid id, IdentityUserUpdateDto input) { var user = await _userManager.GetByIdAsync(id); user.ConcurrencyStamp = input.ConcurrencyStamp; (await _userManager.SetUserNameAsync(user, input.UserName)).CheckErrors(); await UpdateUserByInput(user, input); (await _userManager.UpdateAsync(user)).CheckErrors(); if (!input.Password.IsNullOrEmpty()) { (await _userManager.RemovePasswordAsync(user)).CheckErrors(); (await _userManager.AddPasswordAsync(user, input.Password)).CheckErrors(); } await CurrentUnitOfWork.SaveChangesAsync(); return(ObjectMapper.Map <IdentityUser, IdentityUserDto>(user)); }
public virtual Task <IdentityUserDto> UpdateAsync(Guid id, IdentityUserUpdateDto input) { return(UserAppService.UpdateAsync(id, input)); }