public async Task Execute(string email, CancellationToken cancellationToken) { var user = await database.Users.FirstOrDefaultAsync(u => u.Email == email, cancellationToken); if (user == null) { logger.LogInformation("User to check SSO suspend status for doesn't exist, skipping job"); return; } if (await SSOSuspendHandler.CheckUser(user, database, communityAPI, devForumAPI, logger, cancellationToken)) { await database.SaveChangesAsync(cancellationToken); } }
public async Task Execute(CancellationToken cancellationToken) { bool requiresSave = false; // TODO: even though batching (Buffer) could be used here, won't the database context keep things in memory? foreach (var user in await database.Users.ToListAsync(cancellationToken)) { if (await SSOSuspendHandler.CheckUser(user, database, communityAPI, devForumAPI, logger, cancellationToken)) { requiresSave = true; } } if (requiresSave) { await database.SaveChangesAsync(cancellationToken); } }