Exemplo n.º 1
0
        public CardControl GetCardByIds(TokenControlContext _context, TokenRequest tokenRequest)
        {
            var cardSaved = _context.CardControl.FirstOrDefault(e =>
                                                                (e.Id == tokenRequest.CardId) &&
                                                                (e.CustomerId == tokenRequest.CustomerId));

            return(cardSaved);
        }
Exemplo n.º 2
0
        public CardControl GetCardDuplication(TokenControlContext _context, CardControl cardControl)
        {
            var cardSaved = _context.CardControl.FirstOrDefault(e =>
                                                                (e.Cardnumber == cardControl.Cardnumber) &&
                                                                (e.CustomerId == cardControl.CustomerId) &&
                                                                (e.CVV == cardControl.CVV));

            return(cardSaved);
        }
Exemplo n.º 3
0
 public CardControlsController(TokenControlContext context)
 {
     _context = context;
     if (_cardControlsService == null)
     {
         _cardControlsService = new CardControlsService();
     }
     if (_tokenService == null)
     {
         _tokenService = new TokenService();
     }
 }
Exemplo n.º 4
0
        public Task <bool> ValidateToken(TokenControlContext _context, TokenRequest tokenRequest)
        {
            var cardSavedInDataBase = _dataBaseSearchService.GetCardByIds(_context, tokenRequest);

            if (cardSavedInDataBase == null || !ValidateThirtyMinutesRule(cardSavedInDataBase))
            {
                return(Task.FromResult(false));
            }
            var  lastFourDigitsArray = _operationsService.GetLastFourDigitsFromCard(cardSavedInDataBase.Cardnumber);
            bool result = tokenRequest.Token == GenerateToken(lastFourDigitsArray, tokenRequest.CVV);

            return(Task.FromResult(result));
        }
Exemplo n.º 5
0
        public async Task <CardControlDTO> ProcessCustomerCard(TokenControlContext _context, CardControl cardControl)
        {
            var cardSaved = _dataBaseSearchService.GetCardDuplication(_context, cardControl);

            cardControl.RegistrationDate = DateTime.UtcNow;
            if (cardSaved == null)
            {
                _context.CardControl.Add(cardControl);
            }
            else
            {
                _dataBaseSearchService.DetachedTrackerFromRequest(_context, cardSaved);
                cardControl.Id = cardSaved.Id;
                _dataBaseSearchService.UpdateCardStateToModified(_context, cardControl);
            }
            await _context.SaveChangesAsync();

            return(ReturnCardInformation(cardControl));
        }
Exemplo n.º 6
0
 public void UpdateCardStateToModified(TokenControlContext _context, CardControl cardControl)
 {
     _context.Entry(cardControl).State = EntityState.Modified;
 }
Exemplo n.º 7
0
        public void DetachedTrackerFromRequest(TokenControlContext _context, CardControl cardSaved)
        {
            var local = _context.Set <CardControl>().Local.FirstOrDefault(entry => entry.Id.Equals(cardSaved.Id));

            _context.Entry(local).State = EntityState.Detached;
        }