Mercurial > pub > bltoolkit
diff Demo/Asp.Net/Web/CheckOut.aspx.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Demo/Asp.Net/Web/CheckOut.aspx.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,111 @@ +using System; +using System.Web.UI.WebControls; + +using PetShop.BusinessLogic; +using PetShop.ObjectModel; + +namespace PetShop.Web +{ + public partial class CheckOut : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + if (billingForm.Address == null) + billingForm.Address = Profile.AccountInfo; + } + + /// <summary> + /// Process the order + /// </summary> + protected void wzdCheckOut_FinishButtonClick(object sender, WizardNavigationEventArgs e) + { + if (Profile.ShoppingCart.Items.Count > 0) + { + if (Profile.ShoppingCart.Count > 0) + { + // display ordered items + CartListOrdered.Bind(Profile.ShoppingCart.Items); + + // display total and credit card information + ltlTotalComplete.Text = ltlTotal.Text; + ltlCreditCardComplete.Text = ltlCreditCard.Text; + + // create order + Order order = new Order(); + + order.UserID = User.Identity.Name; + order.OrderDate = DateTime.Now; + order.TotalPrice = Profile.ShoppingCart.Total; + order.ShippingAddress = shippingForm.Address; + order.BillingAddress = billingForm.Address; + order.Lines = Profile.ShoppingCart.GetOrderLineItems(); + order.CreditCard = GetCreditCardInfo(); + + new OrderManager().InsertOrder(order); + + // destroy cart + Profile.ShoppingCart.Clear(); + Profile.Save(); + } + } + else + { + lblMsg.Text = "<p><br>Can not process the order. Your cart is empty.</p><p class=SignUpLabel><a class=linkNewUser href=Default.aspx>Continue shopping</a></p>"; + wzdCheckOut.Visible = false; + } + } + + /// <summary> + /// Create CreditCardInfo object from user input + /// </summary> + private CreditCard GetCreditCardInfo() + { + CreditCard cc = new CreditCard(); + + cc.Type = WebUtility.InputText(listCCType.SelectedValue, 40); + cc.Expiration = WebUtility.InputText(txtExpDate.Text, 7); + cc.Number = WebUtility.InputText(txtCCNumber.Text, 20); + + return cc; + } + + /// <summary> + /// Changing Wiszard steps + /// </summary> + protected void wzdCheckOut_ActiveStepChanged(object sender, EventArgs e) + { + if (wzdCheckOut.ActiveStepIndex == 3) + { + billingConfirm. Address = billingForm.Address; + shippingConfirm.Address = shippingForm.Address; + ltlTotal.Text = Profile.ShoppingCart.Total.ToString("c"); + + if (txtCCNumber.Text.Length > 4) + ltlCreditCard.Text = txtCCNumber.Text.Substring(txtCCNumber.Text.Length - 4, 4); + } + } + + /// <summary> + /// Handler for "Ship to Billing Addredd" checkbox. + /// Prefill/Clear shipping address form. + /// </summary> + protected void chkShipToBilling_CheckedChanged(object sender, EventArgs e) + { + if (chkShipToBilling.Checked) + shippingForm.Address = billingForm.Address; + } + + /// <summary> + /// Custom validator to check CC expiration date + /// </summary> + protected void ServerValidate(object source, ServerValidateEventArgs value) + { + DateTime dt; + + if (DateTime.TryParse(value.Value, out dt)) + value.IsValid = dt > DateTime.Now; + else + value.IsValid = false; + } + } +}