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); } } }
public void CreditCard_Should_Mask_CardNumber() { CreditCard cc = new CreditCard("Visa", "testuser", "4111 1111 1111 1111", 10, 2010, "123"); Assert.AreEqual("**** **** **** 1111", cc.MaskedNumber); }
public void CreditCard_TestNumber_ShouldBe_Invalid() { CreditCard cc = new CreditCard("Visa", "testuser", "4111 1111 1111 1111", 10, 2010, "123"); Assert.IsFalse(cc.IsValid()); }
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()); }
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)); }