public bool IsValid(DateTime datetime) { const int tokenRegitrationTtlInMinutes = 15; return(_tokenGeneratorClock.Now().Subtract(datetime).Minutes <= tokenRegitrationTtlInMinutes); }
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)); }