예제 #1
0
        public DomainToken CheckToken(string token)
        {
            if (token == null)
            {
                throw BankClientException.ThrowInvalidToken();
            }

            var decryptedToken = _iEncryptorService.Decrypt(token);
            var tokenParts     = ParseToken(decryptedToken);
            var tokenObject    = CheckTokenParts(tokenParts);

            CheckTokenValidity(tokenObject);

            return(tokenObject);
        }
예제 #2
0
        private DomainToken CheckTokenParts(string[] tokenParts)
        {
            Guid     guid;
            DateTime date;
            var      isSuccessGuidParse = Guid.TryParse(tokenParts[0], out guid);
            var      login              = tokenParts[1];
            var      userId             = tokenParts[2];
            var      isSuccessDateParse = DateTime.TryParse(tokenParts[3], out date);

            if (!isSuccessGuidParse || !isSuccessDateParse)
            {
                throw BankClientException.ThrowInvalidToken();
            }
            return(new DomainToken(guid, login, userId, date));
        }
예제 #3
0
        public void SignOut(string token)
        {
            if (token == null)
            {
                throw BankClientException.ThrowInvalidToken();
            }
            var decryptedToken = _iEncryptorService.Decrypt(token);
            var tokenParts     = ParseToken(decryptedToken);
            var tokenObject    = CheckTokenParts(tokenParts);
            var databaseToken  = _iUnitOfWork.TokenRepository.GetByGuid(tokenObject.Guid);

            if (databaseToken != null)
            {
                _iUnitOfWork.TokenRepository.Delete(databaseToken.Id);
            }
            _iUnitOfWork.SaveChanges();
        }