/// <summary> /// Update a user /// </summary> /// <param name="user"/> /// <returns/> public async Task UpdateAsync(BackOfficeIdentityUser user) { ThrowIfDisposed(); if (user == null) { throw new ArgumentNullException(nameof(user)); } var asInt = user.Id.TryConvertTo <int>(); if (asInt == false) { throw new InvalidOperationException("The user id must be an integer to work with the Umbraco"); } var found = _userService.GetUserById(asInt.Result); if (found != null) { // we have to remember whether Logins property is dirty, since the UpdateMemberProperties will reset it. var isLoginsPropertyDirty = user.IsPropertyDirty("Logins"); if (UpdateMemberProperties(found, user)) { _userService.Save(found); } if (isLoginsPropertyDirty) { var logins = await GetLoginsAsync(user); _externalLoginService.SaveUserLogins(found.Id, logins); } } }
/// <summary> /// Update a user /// </summary> /// <param name="user"/> /// <returns/> public async Task UpdateAsync(BackOfficeIdentityUser user) { ThrowIfDisposed(); if (user == null) { throw new ArgumentNullException("user"); } var asInt = user.Id.TryConvertTo <int>(); if (asInt == false) { throw new InvalidOperationException("The user id must be an integer to work with the Umbraco"); } var found = _userService.GetUserById(asInt.Result); if (found != null) { if (UpdateMemberProperties(found, user)) { _userService.Save(found); } if (user.LoginsChanged) { var logins = await GetLoginsAsync(user); _externalLoginService.SaveUserLogins(found.Id, logins); } } }