public override async Task <string> GenerateTwoFactorTokenAsync(UserModel user, string tokenProvider) { using var dbContext = new GameDbContext(_dbContextOptions); var emailTokenProvider = new EmailTokenProvider <UserModel>(); var token = await emailTokenProvider.GenerateAsync("TwoFactor", this, user); dbContext.TwoFactorCodeModels.Add(new TwoFactorCodeModel { TokenCode = token, TokenProvider = tokenProvider, UserId = user.Id }); if (dbContext.ChangeTracker.HasChanges()) { await dbContext.SaveChangesAsync(); } return(token); }