public async Task <VerificationResult> CreateRealVerificationResult(string nationalIdentifier, string pseudonym)
            {
                var positiveTest = await _msisLookupService.FindPositiveTestResult(nationalIdentifier);

                return(await positiveTest.MatchAsync(
                           none : CreateNonPositiveResult,
                           some : async pt =>
                {
                    var existingRecords =
                        await _verificationRecordsRepository.RetrieveRecordsForPseudonym(pseudonym, _verificationLimit.RecordsCutoff);
                    return await CreatePositiveVerificationResult(pt, pseudonym, existingRecords);
                }));
            }
            public async Task <VerificationResult> Handle(Command request, CancellationToken cancellationToken)
            {
                var existingRecords =
                    await _verificationRecordsRepository.RetrieveRecordsForPseudonym(request.Pseudonym, _verificationLimit.RecordsCutoff);

                var newRecord = new VerificationRecord(request.Pseudonym);

                var verificationRecords = existingRecords.Concat(new[] { newRecord });

                _logger.LogInformation("Creating verified positive result for pin user");
                var verificationResult = new VerificationResult(new PositiveTestResult(), verificationRecords, _verificationLimit);

                await _verificationRecordsRepository.SaveNewRecord(newRecord);

                return(verificationResult);
            }
            private async Task <User> CreatePositiveUser(PositiveTestResult testResult, Command request)
            {
                var userIdClaim = FindUserIdClaim(request.ExternalClaims).ValueOr(() =>
                                                                                  throw new Exception("Unable to determine user-ID from external claims from provider: " + request.Provider));

                var pseudonym       = _pseudonymFactory.Create(request.Provider + ":" + userIdClaim.Value);
                var existingRecords =
                    await _verificationRecordsRepository.RetrieveRecordsForPseudonym(pseudonym);

                var newRecord = new VerificationRecord(pseudonym);

                var verificationRecords = existingRecords.Concat(new[] { newRecord });

                _logger.LogInformation("Verified positive user created after ID-porten login and MSIS lookup");
                var postiveUser = new PositiveUser(request.Provider, userIdClaim.Value, testResult, verificationRecords, _verificationLimit);

                await _verificationRecordsRepository.SaveNewRecord(newRecord);

                return(postiveUser);
            }