예제 #1
0
        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)}");
        }