public async Task SetTokenAsync(ApplicationUser user, string loginProvider, string name, string value, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); using (var adapter = new DataAccessAdapter()) { var qf = new QueryFactory(); var q = qf.AspNetUserToken .Where(AspNetUserTokenFields.UserId.Equal(user.Id) .And(AspNetUserTokenFields.LoginProvider.Equal(loginProvider)) .And(AspNetUserTokenFields.Name.Equal(name))); var userToken = await adapter.FetchFirstAsync(q, cancellationToken); if (userToken == null) { userToken = new AspNetUserTokenEntity(); } userToken.UserId = user.Id; userToken.LoginProvider = user.LoginProvider; userToken.Name = name; userToken.Value = value; await adapter.SaveEntityAsync(userToken, cancellationToken); } }
public async Task ReplaceCodesAsync(ApplicationUser user, IEnumerable <string> recoveryCodes, CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); using (var adapter = new DataAccessAdapter()) { var qf = new QueryFactory(); var q = qf.AspNetUserToken .Where(AspNetUserTokenFields.UserId.Equal(user.Id) .And(AspNetUserTokenFields.LoginProvider.Equal(user.LoginProvider)) .And(AspNetUserTokenFields.Name.Equal(user.LoginRecoveryTokenKey))); var userTokenEntity = await adapter.FetchFirstAsync(q, cancellationToken); if (userTokenEntity == null) { userTokenEntity = new AspNetUserTokenEntity(); } userTokenEntity.UserId = user.Id; userTokenEntity.LoginProvider = user.LoginProvider; userTokenEntity.Name = user.LoginRecoveryTokenKey; userTokenEntity.Value = string.Join(";", recoveryCodes); await adapter.SaveEntityAsync(userTokenEntity, cancellationToken); } }