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; public partial class Controls_Selectors_List : SelectorControl { private int MinimumQuantity { get { return (ViewState["MinimumQuantity"] == null ? 1 : (int)ViewState["MinimumQuantity"]); } set { ViewState["MinimumQuantity"] = value; } } private bool ignoreInventory { get { return Configuration.Get("IgnoreInventory") == "Yes" ? true : false; } } // variables to be displayed public string ProductName; public string Description; protected void Page_Load(object sender, EventArgs e) { } public override void BindData() { // bind image view ImageView1.SelectorID = SelectorData.SelectorID; ImageView1.BindData(); // bind customizations SelectorCustomization1.SelectorID = SelectorData.SelectorID; SelectorCustomization1.BindData(); // bind related products RelatedProducts1.SelectorID = SelectorData.SelectorID; RelatedProducts1.BindData(); litProductName.Text = SelectorData.Name; if (SelectorData.SKU.Length > 0) litSKU.Text = SelectorData.SKU; ProductName = SelectorData.Name; Description = SelectorData.Description; DataTable dt = Database.Items_GetBySelectorIDForDetailPage(SelectorData.SelectorID); gvItems.DataSource = dt; gvItems.DataBind(); } protected void gvItems_RowCommand(object sender, GridViewCommandEventArgs e) { int ItemID = Int32.Parse(e.CommandArgument.ToString()); GridViewRow gvr = (GridViewRow)((Control)e.CommandSource).Parent.Parent; TextBox txtQuantity = (TextBox)gvr.FindControl("txtQuantity"); int Quantity = Int32.Parse(txtQuantity.Text); string CustomizationText = SelectorCustomization1.GetCustomizationText(); decimal CustomizationCost = SelectorCustomization1.GetCustomizationCost(); switch (e.CommandName) { case "buy": int Max = Int32.Parse(Database.Items_Get(ItemID)["Inventory"].ToString()); // we need to check items in the cart with this ItemID foreach (ShoppingCartItem sci2 in ShoppingCart) { if (sci2.ItemID == ItemID && Max != -1) Max -= sci2.Quantity; } if (ignoreInventory) { AddItemToCart(ItemID, Quantity, CustomizationText, CustomizationCost); Response.Redirect("~/Cart.aspx"); } else { if (Max == 0) { Page.ClientScript.RegisterStartupScript(typeof(string), "error", "alert('You have already added all available units to your cart.');", true); } else if (Quantity > Max && Max != -1) { Page.ClientScript.RegisterStartupScript(typeof(string), "error", "alert('You can only add " + Max.ToString() + " unit(s) to your cart. Please decrease your quantity this amount or less.');", true); } else if (Quantity >= MinimumQuantity) { AddItemToCart(ItemID, Quantity, CustomizationText, CustomizationCost); Response.Redirect("~/Cart.aspx"); } else { Page.ClientScript.RegisterStartupScript(typeof(string), "error", "alert('The minimum order for this item is " + MinimumQuantity.ToString() + " unit(s). Please increase your quantity to at least this amount.');", true); } } break; default: break; } } protected void gvItems_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { Literal li = (Literal)e.Row.Cells[0].Controls[0]; DataRowView drv = (DataRowView)e.Row.DataItem; li.Text = (string)drv["Name"]; if (!ignoreInventory) { // 1. set "out of stock" if ((int)drv["Inventory"] < -1 || (int)drv["Inventory"] == 0) { e.Row.Cells[3].Controls.Clear(); e.Row.Cells[3].Text = "Out of Stock"; } } // 2. set "Volume" if (drv["VolumePricingTableID"] != DBNull.Value) e.Row.Cells[1].Text = "Volume"; } } }