Beispiel #1
0
        public bool IsValid(DateTime datetime)
        {
            const int tokenRegitrationTtlInMinutes = 15;

            return(_tokenGeneratorClock.Now().Subtract(datetime).Minutes <= tokenRegitrationTtlInMinutes);
        }
Beispiel #2
0
        private async Task <TokenCreateResponse> InternalCreateAsync(TokenCreateRequest tokenCreateRequest, CancellationToken cancellationToken = default(CancellationToken))
        {
            //TODO business rule: should we receive a deviceId to "connect" the token with that device?
            var generatedToken = _tokenGenerator.Generate(new Card(tokenCreateRequest.CardNumber, tokenCreateRequest.Cvv), _tokenGeneratorClock.Now());

            var tokenRegistration = new TokenRegistration(generatedToken.Value, tokenCreateRequest.CardNumber, generatedToken.GeneratedAt);

            _databaseContext.TokenRegistrations.Add(tokenRegistration);
            await _databaseContext.SaveChangesAsync(cancellationToken);

            return(new TokenCreateResponse(generatedToken.GeneratedAt, generatedToken.Value));
        }