public void FindAndRemoveInvalidKeys(int batchSize) { int numberOfRecordsToSkip = 0; List <TemporaryExposureKey> databaseKeys; List <TemporaryExposureKey> wrongKeys = new List <TemporaryExposureKey>(); var errorMessage = string.Empty; do { databaseKeys = _repository.GetAllKeysNextBatch(numberOfRecordsToSkip, batchSize).ToList(); foreach (var key in databaseKeys) { if (!_keyValidator.ValidateKeyAPI(key, out errorMessage)) { wrongKeys.Add(key); } } numberOfRecordsToSkip += databaseKeys.Count; }while (databaseKeys.Count > 0); _repository.RemoveKeys(wrongKeys); _logger.LogInformation($"Removed {wrongKeys.Count} invalid keys from the database: {JsonConvert.SerializeObject(wrongKeys)}"); }