public override Task HandleCollectCompletedEvent(BankIdCollectCompletedEvent e)
        {
            var properties = new Dictionary <string, string>
            {
                { PropertyName_BankIdOrderRef, e.OrderRef }
            };

            if (_options.LogUserNames)
            {
                properties.Add(PropertyName_UserName, e.CompletionData.User.Name);
                properties.Add(PropertyName_UserGivenName, e.CompletionData.User.GivenName);
                properties.Add(PropertyName_UserSurname, e.CompletionData.User.Surname);
            }

            if (_options.LogDeviceIpAddress)
            {
                properties.Add(PropertyName_BankIdUserDeviceIpAddress, e.CompletionData.Device.IpAddress);
            }

            if (_options.LogCertificateDates)
            {
                properties.Add(PropertyName_BankIdUserCertNotBefore, e.CompletionData.Cert.NotBefore);
                properties.Add(PropertyName_BankIdUserCertNotAfter, e.CompletionData.Cert.NotAfter);
            }

            var personalIdentityNumber = PersonalIdentityNumber.Parse(e.CompletionData.User.PersonalIdentityNumber);

            return(Track(
                       e,
                       properties,
                       personalIdentityNumber: personalIdentityNumber,
                       detectedDevice: e.DetectedUserDevice,
                       loginOptions: e.BankIdOptions
                       ));
        }
        public override Task HandleCollectCompletedEvent(BankIdCollectCompletedEvent e)
        {
            var eventId = GetEventId(e);

            _logger.LogInformation(eventId, "BankID collect is completed for OrderRef '{OrderRef}'", e.OrderRef);
            _logger.LogTrace(eventId, "BankID collect is completed for OrderRef '{OrderRef}' with User (PersonalIdentityNumber: '{UserPersonalIdentityNumber}'; GivenName: '{UserGivenName}'; Surname: '{UserSurname}'; Name: '{UserName}'), Signature '{Signature}' and OcspResponse '{OcspResponse}'", e.OrderRef, e.CompletionData.User.PersonalIdentityNumber, e.CompletionData.User.GivenName, e.CompletionData.User.Surname, e.CompletionData.User.Name, e.CompletionData.Signature, e.CompletionData.OcspResponse);
            return(Task.CompletedTask);
        }
        public override async Task HandleCollectCompletedEvent(BankIdCollectCompletedEvent e)
        {
            var tasks = new List <Task>();

            foreach (var bankIdResultStore in _bankIdResultStores)
            {
                tasks.Add(bankIdResultStore.StoreCollectCompletedCompletionData(e.OrderRef, e.CompletionData));
            }

            await Task.WhenAll(tasks);
        }