Ejemplo n.º 1
0
        public void PostCardPaymentTest()
        {
            Mock <ITicketRepository> TicketRepo         = new Mock <ITicketRepository>();
            Mock <IOrderRepository>  OrderRepo          = new Mock <IOrderRepository>();
            HallMovieViewModel       hallMovieViewModel = new HallMovieViewModel()
            {
                order = new Order()
            };

            var test = new PaymentController(TicketRepo.Object, OrderRepo.Object);

            test.TempData["hallMovieViewModel"] = new HallMovieViewModel()
            {
                order = new Order()
            };
            CardPaymentViewModel model = new CardPaymentViewModel()
            {
                CardNumber     = "1928374657483920",
                ExpiryMonth    = 3,
                ExpiryYear     = 3000,
                SecurityNumber = "123"
            };

            model.checkExpired(model.ExpiryMonth, model.ExpiryYear);
            var result = test.CardPayment(model).ViewName;

            Assert.AreEqual(result, "Success");
        }
Ejemplo n.º 2
0
        public void ExpiryMonthWrong()
        {
            var test = new CardPaymentViewModel()
            {
                CardNumber     = "4921816602935113",
                ExpiryMonth    = 13,
                ExpiryYear     = 3000,
                SecurityNumber = "777"
            };

            test.checkExpired(test.ExpiryMonth, test.ExpiryYear);
            Assert.IsTrue(ValidateModel(test).Count > 0);
        }
Ejemplo n.º 3
0
        public void CardNumberWrong2()
        {
            var test = new CardPaymentViewModel()
            {
                CardNumber     = "abcdefghijklmnop",
                ExpiryMonth    = 5,
                ExpiryYear     = 3000,
                SecurityNumber = "777"
            };

            test.checkExpired(test.ExpiryMonth, test.ExpiryYear);
            Assert.IsTrue(ValidateModel(test).Count > 0);
        }
Ejemplo n.º 4
0
        public void ExpiredTest2()
        {
            var test = new CardPaymentViewModel()
            {
                CardNumber     = "4921816602935113",
                ExpiryMonth    = 1,
                ExpiryYear     = 3000,
                SecurityNumber = "123"
            };

            test.checkExpired(test.ExpiryMonth, test.ExpiryYear);
            Assert.AreEqual(test.Expired, false);
        }
        private void InsertCardDetails(CardPaymentViewModel model, int addressId, int customerId)
        {
            var registeredCard = new RegisteredCard
            {
                CardNumber     = model.CardNumberString,
                CardHolderName = model.CardOwnersName,
                CardExpiryDate = model.ExpiryDate,
                CustomerID     = customerId,
                AddressID      = addressId
            };

            _context.RegisteredCards.Add(registeredCard);
            _context.SaveChanges();
        }
        private UKAddress InsertNewUKCardAddress(CardPaymentViewModel model)
        {
            var cardAddress = new UKAddress
            {
                AddressLine1 = model.CardAddress.AddressLine1,
                AddressLine2 = model.CardAddress.AddressLine2,
                Town         = model.CardAddress.Town,
                County       = model.CardAddress.County,
                Postcode     = model.CardAddress.Postcode
            };

            _context.UKAddresses.Add(cardAddress);
            _context.SaveChanges();
            return(cardAddress);
        }
        public CardPaymentReceiptViewModel Create(CardPaymentViewModel viewModel)
        {
            var paymentTransactionId = Guid.NewGuid().ToString();

            var chargeCreateOptions = new ChargeCreateOptions
            {
                TransferGroup = paymentTransactionId,
                Amount        = PaymentAmountPence,
                Currency      = PaymentCurrency,
                Description   = PaymentDescription,
                SourceId      = viewModel.Token,
                Capture       = CaptureCardPayment,
                ReceiptEmail  = viewModel.Email,
            };

            var charge = _chargeService.Create(chargeCreateOptions);

            return(ToPaymentReceipt(charge));
        }
        public IActionResult RegisterCard(CardPaymentViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (!LuhnCheck(model.CardNumberString) || !CardExpiryDateIsValid(model.ExpiryDate))
                {
                    return(View());
                }

                UKAddress cardAddress = InsertNewUKCardAddress(model);

                //This method is just here for illustrative purposes and to tie the registered card to a customer
                var customerId = GetCustomerId();

                InsertCardDetails(model, cardAddress.ID, customerId);

                ModelState.Clear();
            }
            else
            {
                return(View(model));
            }
            return(View());
        }
Ejemplo n.º 9
0
        public IActionResult Index(CardPaymentViewModel viewModel)
        {
            var receiptViewModel = _cardPaymentService.Create(viewModel);

            return(RedirectToAction("Receipt", "Payment", receiptViewModel));
        }
Ejemplo n.º 10
0
        public ViewResult CardPayment(CardPaymentViewModel card)
        {
            HallMovieViewModel hallMovieViewModel = (HallMovieViewModel)TempData["hallMovieViewModel"];

            if (ModelState.IsValid)
            {
                card.checkExpired(card.ExpiryMonth, card.ExpiryYear);
                if (card.Expired == false)
                {
                    bool PrintIDUnique = false;

                    Random Random = new Random();

                    int PrintID = Random.Next(100000000, 999999999);

                    if (OrderRepo.CheckPrintIDExist(PrintID) == false)
                    {
                        hallMovieViewModel.order.PrintID = PrintID;
                        OrderRepo.AddOrder(hallMovieViewModel.order);
                        hallMovieViewModel.order = OrderRepo.GetOrderOnPrintID(PrintID);
                    }
                    else
                    {
                        while (PrintIDUnique == false)
                        {
                            int NewPrintID = Random.Next(100000000, 999999999);
                            if (OrderRepo.CheckPrintIDExist(NewPrintID) == false)
                            {
                                hallMovieViewModel.order.PrintID = NewPrintID;
                                OrderRepo.AddOrder(hallMovieViewModel.order);
                                PrintIDUnique            = true;
                                hallMovieViewModel.order = OrderRepo.GetOrderOnPrintID(NewPrintID);
                            }
                            else
                            {
                                PrintIDUnique = false;
                            }
                        }
                    }

                    foreach (Ticket ticket in hallMovieViewModel.TempTickets)
                    {
                        ticket.OrderID = hallMovieViewModel.order.OrderID;
                        TicketRepo.AddTicket(ticket);
                    }

                    TempData["hallMovieViewModel"] = hallMovieViewModel;
                    return(View("Success", hallMovieViewModel));
                }
                else
                {
                    TempData["hallMovieViewModel"] = hallMovieViewModel;
                    this.ModelState.AddModelError("Expired", "Uw kaart is verlopen");
                    return(View("CardPayment"));
                }
            }
            else
            {
                this.ModelState.AddModelError("Expired", "Uw kaart is verlopen");
                return(View("CardPayment"));
            }
        }