public ActionResult SetCreditCardAndBilling() {
            //there should be an order in TempData...
            OrderData data = new OrderData();
            data.CurrentOrder = GetTempOrder();

            if (data.CurrentOrder.ShippingAddress == null) {
                return RedirectToAction("Shipping");
            } else {
                CreditCard card = new CreditCard();
                data.CurrentOrder.BillingAddress = new Address();

                UpdateModel(data.CurrentOrder.BillingAddress, new[]{
                "FirstName",
                "LastName",
                "Email",
                "Street1",
                "Street2",
                "City",
                "StateOrProvince",
                "Zip",
                "Country"});

                UpdateModel(card, new[]{
                "AccountNumber",
                "CardType",
                "ExpirationMonth",
                "ExpirationYear",
                "VerificationCode"});

                data.CurrentOrder.PaymentMethod = card;

                PutTempOrder(data.CurrentOrder);
                return RedirectToAction("Finalize");
            }
        }
        public ActionResult CreditCard()
        {
            
            //there should be an order in TempData...
            OrderData data = new OrderData();
            data.CurrentOrder = GetTempOrder();
            
            //we should have a shipping address by now
            //calc the tax
            data.CurrentOrder.TaxAmount = _taxService.CalculateTaxAmount(data.CurrentOrder);

            string sAddressID = Request.Form["addressid"];
            int addressID = 0;

            if (!String.IsNullOrEmpty(sAddressID)) {
                int.TryParse(sAddressID, out addressID);
                data.CurrentOrder.BillingAddress = _orderService.GetAddress(addressID);
                //save it
                _orderService.SaveOrder(data.CurrentOrder);
                return View(data);
            }


            //if this is a post from the CreditCard action
            //check the number
            string ccNumber = Request.Form["accountnumber"];
            if (!string.IsNullOrEmpty(ccNumber)) {

                //set the Billing and CC
                if (data.CurrentOrder.BillingAddress == null) {
                    data.CurrentOrder.BillingAddress = new Address();
                    data.CurrentOrder.BillingAddress.UserName = this.GetUserName();
                }

                UpdateModel(data.CurrentOrder.BillingAddress, new[]{
                "FirstName",
                "LastName",
                "Email",
                "Street1",
                "Street2",
                "City",
                "StateOrProvince",
                "Zip",
                "Country"});



                CreditCard cc = new CreditCard();
              
                UpdateModel(cc, new[]{
                "AccountNumber",
                "CardType",
                "ExpirationMonth",
                "ExpirationYear",
                "VerificationCode"});
                
                data.CurrentOrder.PaymentMethod = cc;
                
                PutTempOrder(data.CurrentOrder);

                //make sure the card is valid
                if (!cc.IsValid()) {
                    this.SetErrorMessage("This credit card is not valid. Please check the number and expiration date");
                    return View(data);
                } else {
                    return RedirectToAction("Finalize");
                }
            } else {


                if (data.CurrentOrder.ShippingAddress == null) {
                    return RedirectToAction("Shipping");
                } else {
                    if (data.CurrentOrder.BillingAddress == null)
                        data.CurrentOrder.BillingAddress = data.CurrentOrder.ShippingAddress;
                    PutTempOrder(data.CurrentOrder);
                    return View(data);
                }
            }
        }
Esempio n. 3
0
        public void CreditCard_Should_Mask_CardNumber()
        {
            CreditCard cc = new CreditCard("Visa", "testuser", "4111 1111 1111 1111", 10, 2010, "123");
            Assert.AreEqual("**** **** **** 1111", cc.MaskedNumber);

        }
Esempio n. 4
0
        public void CreditCard_TestNumber_ShouldBe_Invalid()
        {
            CreditCard cc = new CreditCard("Visa", "testuser", "4111 1111 1111 1111", 10, 2010, "123");
            Assert.IsFalse(cc.IsValid());

        }
Esempio n. 5
0
        public void CreditCard_TestNumber_ShouldValidate()
        {
            //card number generated by Brad Conte's card generator
            //http://bradconte.com/projects/cc_generator.php
            CreditCard cc = new CreditCard("Visa", "testuser", "4586 9748 7358 4049", 10, 2010, "123");
            Assert.IsTrue(cc.IsValid());

        }
Esempio n. 6
0
        public void CreditCard_Should_Have_Name_Account_Expiration_Number()
        {
            CreditCard cc = new CreditCard("Visa","testuser", "41111111111111", 10, 2010, "123");
            Assert.AreEqual(cc.Name, "testuser");
            Assert.AreEqual(cc.AccountNumber, "41111111111111");
            Assert.AreEqual(cc.ExpirationYear, 2010);
            Assert.AreEqual(cc.ExpirationMonth, 10);
            Assert.AreEqual(cc.Expiration, new DateTime(2010,10,31));

        }