Beispiel #1
0
        public async Task AddCreditCard(string memberId, CreditCard creditCard)
        {
            var member = await GetById(memberId);

            creditCard.SetHolder(member);
            await _creditCardRepository.Insert(creditCard);
        }
Beispiel #2
0
        public bool Add(long salesorderid, string creditCard)
        {
            var objinfra = _creditCardInfra.CreditCard(creditCard);

            var obj = new CreditCard()
            {
                Reference     = objinfra.creditCardTransaction.reference,
                AmountInCents = objinfra.creditCardTransaction.amountInCents,
                AuthorizedAt  = objinfra.creditCardTransaction.authorizedAt,
                SalesOrderId  = salesorderid
            };


            _salesOrderBusiness.UpdateStatus(salesorderid, Domain.Entities.Values.OrderStatus.PaymentApproved);

            return(_creditCardRepository.Insert(obj));
        }
        /// <summary>
        /// Responsible for business lógic of token generation
        /// </summary>
        /// <param name="cardNumber"></param>
        /// <param name="cvv"></param>
        /// <param name="registrationDate"></param>
        /// <param name="validationProcess"></param>
        /// <returns>Token</returns>
        public async Task <long> CreateToken(long cardNumber, int cvv, DateTime registrationDate, bool validationProcess)
        {
            //validations
            validateCardNumber(cardNumber);
            validateCvv(cvv);
            validateRegistrationDate(registrationDate);

            //Generate initial token based on concatenation of Card Number and registration Date
            var token = cardNumber.ToString() + registrationDate.ToString("yyyyMMddHHmm");


            //Find new array by absolute difference
            token = FindArrayByAbsoluteDifference(token);

            //Find new array by applying right circular rotations considering k = cvv
            token = ApplyRotations(token, cvv);


            //case a validation process return without saving in db
            if (validationProcess)
            {
                return(Convert.ToInt64(token));
            }


            var card = new CreditCard
            {
                CardNumber       = cardNumber,
                RegistrationDate = registrationDate
            };

            //Save Card Number on database
            await _repository.Insert(card);

            //return token
            return(Convert.ToInt64(token));
        }