public JsonResultDTO MakePayment(CardDetailDTO cardDetail)
        {
            var isExpiryDateValid = CardValidation.ValidateExpiryDate(cardDetail.ExpiryDate);
            var isCvvValid        = CardValidation.ValidateCvvNumber(cardDetail.Cvv);

            if (isExpiryDateValid && isCvvValid)
            {
                var bankResponse = IBankRepo.MakePayment(cardDetail);
                if (bankResponse.Status == "Success")
                {
                    jsonResult.IsSuccess     = true;
                    jsonResult.TransactionId = bankResponse.Identifier;
                }
                else
                {
                    jsonResult.IsSuccess = false;
                    jsonResult.Errors.Add("Bank responded payment unsuccessful");
                }
            }
            else
            {
                jsonResult.IsSuccess = false;
                jsonResult.Errors.Add("The credit card is expired");
            }
            return(jsonResult);
        }
        public BankPaymentResponseDTO MakePayment(CardDetailDTO cardDetail)
        {
            BankPaymentResponseDTO payment = new BankPaymentResponseDTO()
            {
                Identifier = new Guid(),
                Status     = "Success"
            };

            return(payment);
        }
Exemple #3
0
        public ObjectResult Get(Guid guid)
        {
            var dto = new CardDetailDTO();

            var response = new BaseResponse <CardDetailDTO>(dto);

            try
            {
                dto = adManager.Detail(guid);

                response.Dto     = dto;
                response.Success = true;

                base.PrepareResult <BaseResponse <CardDetailDTO> >(response);
            }
            catch (Exception ex)
            {
                base.PrepareBadRequestResult <BaseResponse <CardDetailDTO> >(response);
            }

            return(base.result);
        }
        public void MakePayment_ShouldReturnFalse_WhenPassedInvalidCardCvv()
        {
            CardDetailDTO card = new CardDetailDTO()
            {
                Amount     = 100,
                CardNumber = "1234567891234567",
                Currency   = "Euro",
                Cvv        = 1234,
                ExpiryDate = "12/2020"
            };
            BankPaymentResponseDTO payment = new BankPaymentResponseDTO()
            {
                Identifier = new Guid(),
                Status     = "Success"
            };

            mockBankRepositoryService.Setup(x => x.MakePayment(card)).Returns(payment);
            PaymentGateway paymentGateway = new PaymentGateway(mockBankRepositoryService.Object);
            var            result         = paymentGateway.MakePayment(card);

            Assert.AreEqual(result.IsSuccess, false);
        }
        public void MakePayment_ShouldReturnTrue_WhenPassedValidCardDetails()
        {
            //ExpiryDate expiryDate = new ExpiryDate() { Month = 07, Year = 2022 };
            CardDetailDTO card = new CardDetailDTO()
            {
                Amount     = 100,
                CardNumber = "1234567891234567",
                Currency   = "Euro",
                Cvv        = 123,
                ExpiryDate = "07/2022"
            };
            BankPaymentResponseDTO payment = new BankPaymentResponseDTO()
            {
                Identifier = new Guid(),
                Status     = "Success"
            };

            mockBankRepositoryService.Setup(x => x.MakePayment(card)).Returns(payment);
            PaymentGateway paymentGateway = new PaymentGateway(mockBankRepositoryService.Object);
            var            result         = paymentGateway.MakePayment(card);

            Assert.AreEqual(result.IsSuccess, true);
        }
        public void ProcessPayments_ShouldReturnSucessfull_WhenWithProperCardDetail()
        {
            //ExpiryDate expiryDate = new ExpiryDate() { Month = 07, Year = 2022 };
            CardDetailDTO card = new CardDetailDTO()
            {
                Amount     = 100,
                CardNumber = "1234567891234567",
                Currency   = "Euro",
                Cvv        = 123,
                ExpiryDate = "12/2020"
            };

            JsonResultDTO result = new JsonResultDTO()
            {
                IsSuccess     = true,
                TransactionId = new Guid(),
            };

            mockPaymentGateService.Setup(x => x.MakePayment(card)).Returns(result);
            _paymentGatewayController = new PaymentGatewayController(mockPaymentGateService.Object);
            JsonResult paymentInfo = _paymentGatewayController.ProcessPayments(card);

            Assert.AreEqual(result, paymentInfo.Data);
        }
Exemple #7
0
 public static AdTypeViewModel Get(CardDetailDTO card)
 {
     return(Get(card.Ad.Type));
 }
 private void Formatter(CardDetailDTO ad)
 {
     ad.Owner.CellPhone = ad.Owner.CellPhone.PhoneFormat();
     ad.Owner.Phone     = ad.Owner.Phone.PhoneFormat();
 }
Exemple #9
0
        public JsonResult ProcessPayments(CardDetailDTO cardDetail)
        {
            var result = _service.MakePayment(cardDetail);

            return(Json(result, JsonRequestBehavior.AllowGet));
        }