using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections.Generic; public partial class ShippingOptions : WebBlockPage { private OrderInfo OrderInfo { get { if (Session["OrderInfo"] == null) Session["OrderInfo"] = new OrderInfo(); return (OrderInfo)Session["OrderInfo"]; } } private List ShippingMethods { get { return (List)ViewState["ShippingMethods"]; } set { ViewState["ShippingMethods"] = value; } } protected override void OnInit(EventArgs e) { if (ShoppingCart.GrandTotal == 0) Response.Redirect("Cart.aspx"); SecurePage = true; base.OnInit(e); } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindData(); } } private void BindData() { decimal FreeShippingAmount = Decimal.Parse(Configuration.Get("Shipping.FreeShippingAmount")); decimal HandlingFee = Decimal.Parse(Configuration.Get("Shipping.HandlingFee")); ShippingBase sb = ShippingBase.GetShippingObject(Configuration.Get("Shipping.Method")); List methods = sb.GetShippingMethods( Configuration.Get("Shipping.SourceZip"), ShoppingCart.Zipcode); // adjust methods for handling charge foreach (ShippingMethod sm in methods) sm.Cost += HandlingFee; // add a "free shipping" item, if they have qualified for it if (ShoppingCart.IsFreeShipping || ShoppingCart.DiscountedTotal > FreeShippingAmount) methods.Insert(0, new ShippingMethod("Free Shipping", 0)); for (int i = 0; i < methods.Count; i++) { ListItem li = new ListItem(methods[i].ToString(), i.ToString()); if (ShoppingCart.ShippingName.Equals(methods[i].Name)) li.Selected = true; rblShippingOptions.Items.Add(li); } rblShippingOptions.SelectedIndex = 0; ShippingMethods = methods; } protected void btnSubmit_Click(object sender, EventArgs e) { Page.Validate(); if (Page.IsValid) { int idx = Int32.Parse(rblShippingOptions.SelectedValue); ShoppingCart.ShippingName = ShippingMethods[idx].Name; ShoppingCart.ShippingCost = ShippingMethods[idx].Cost; Response.Redirect("Checkout.aspx"); } } }