public async Task <List <TemporaryExposureKey> > FilterDuplicateKeysAsync(IList <TemporaryExposureKey> incomingKeys) { var newKeyData = incomingKeys.Select(u => u.KeyData).Distinct().ToArray(); var keysInDb = await _temporaryExposureKeyRepository.GetKeysThatAlreadyExistsInDbAsync(newKeyData); var keysNotInDb = incomingKeys.Where(u => keysInDb.All(x => !x.SequenceEqual(u.KeyData))).ToList(); return(keysNotInDb); }