annotate Demo/Asp.Net/Web/CheckOut.aspx.cs @ 1:8f65451dc28f

Исправлена проблема с фабрикой и выборкой нескольких объектов в linq выражении
author cin
date Fri, 28 Mar 2014 01:04:56 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2 using System.Web.UI.WebControls;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using PetShop.BusinessLogic;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 using PetShop.ObjectModel;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 namespace PetShop.Web
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 public partial class CheckOut : System.Web.UI.Page
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 protected void Page_Load(object sender, EventArgs e)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 if (billingForm.Address == null)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 billingForm.Address = Profile.AccountInfo;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 /// Process the order
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 protected void wzdCheckOut_FinishButtonClick(object sender, WizardNavigationEventArgs e)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 if (Profile.ShoppingCart.Items.Count > 0)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 if (Profile.ShoppingCart.Count > 0)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 // display ordered items
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 CartListOrdered.Bind(Profile.ShoppingCart.Items);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 // display total and credit card information
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 ltlTotalComplete.Text = ltlTotal.Text;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 ltlCreditCardComplete.Text = ltlCreditCard.Text;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 // create order
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 Order order = new Order();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 order.UserID = User.Identity.Name;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 order.OrderDate = DateTime.Now;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 order.TotalPrice = Profile.ShoppingCart.Total;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 order.ShippingAddress = shippingForm.Address;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 order.BillingAddress = billingForm.Address;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 order.Lines = Profile.ShoppingCart.GetOrderLineItems();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 order.CreditCard = GetCreditCardInfo();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 new OrderManager().InsertOrder(order);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 // destroy cart
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 Profile.ShoppingCart.Clear();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 Profile.Save();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 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>";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 wzdCheckOut.Visible = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 /// Create CreditCardInfo object from user input
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 private CreditCard GetCreditCardInfo()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 CreditCard cc = new CreditCard();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 cc.Type = WebUtility.InputText(listCCType.SelectedValue, 40);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 cc.Expiration = WebUtility.InputText(txtExpDate.Text, 7);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 cc.Number = WebUtility.InputText(txtCCNumber.Text, 20);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 return cc;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 /// Changing Wiszard steps
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 protected void wzdCheckOut_ActiveStepChanged(object sender, EventArgs e)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 if (wzdCheckOut.ActiveStepIndex == 3)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 billingConfirm. Address = billingForm.Address;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 shippingConfirm.Address = shippingForm.Address;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 ltlTotal.Text = Profile.ShoppingCart.Total.ToString("c");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 if (txtCCNumber.Text.Length > 4)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 ltlCreditCard.Text = txtCCNumber.Text.Substring(txtCCNumber.Text.Length - 4, 4);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 /// Handler for "Ship to Billing Addredd" checkbox.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 /// Prefill/Clear shipping address form.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 protected void chkShipToBilling_CheckedChanged(object sender, EventArgs e)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 if (chkShipToBilling.Checked)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 shippingForm.Address = billingForm.Address;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 /// <summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 /// Custom validator to check CC expiration date
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100 /// </summary>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 protected void ServerValidate(object source, ServerValidateEventArgs value)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103 DateTime dt;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 if (DateTime.TryParse(value.Value, out dt))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 value.IsValid = dt > DateTime.Now;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 else
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 value.IsValid = false;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 }