protected void btnAddToCart_Click(object sender, EventArgs e) { //make sure that there are enough units in stock if (vldQuantity.IsValid) //<stretch>Should also have server side validation in case of multiple users/connections</stretch> { NorwinDBTableAdapters.CartTableAdapter cart = new NorwinDBTableAdapters.CartTableAdapter(); NorwinDBTableAdapters.ProductsTableAdapter products = new NorwinDBTableAdapters.ProductsTableAdapter(); //get input int numberToOrder = int.Parse(cbxQuantity.SelectedValue); float unitPrice = (float)products.GetUnitPriceByProdID(Convert.ToInt32(Request.QueryString[0])); float subTotal = (float)numberToOrder * unitPrice; //add the selected quantity of the item to the cart table in the DB cart.InsertCartItem(prodName, numberToOrder, prodID, custID, Session.SessionID, unitPrice, subTotal); products.UpdateInStock((short)(unitsInStock - numberToOrder), prodID); lsvProdDetails.DataSource = products.GetDataByProdID(Convert.ToInt32(Request.QueryString[0])); lsvProdDetails.DataBind(); lblItemAdded.Text = numberToOrder + " items added to order."; } else { lblItemAdded.Text = "..."; } }
protected void btnAddToOrder_Click(object sender, EventArgs e) { int qty; //check the stock for the selected item, print out the stock level and set the validator's max value if it is below requested if (int.TryParse(cbxQuantity.SelectedValue, out qty) && qty >= 1) { int unitsInStock = Convert.ToInt32(products.GetInStockByProdID(Convert.ToInt32(cbxItemName.SelectedValue))); if (unitsInStock < Convert.ToInt32(cbxQuantity.SelectedValue)) { if (unitsInStock > 0) { //tell the user lblMessage.CssClass = "validator-message"; lblMessage.Text = "Item only has " + unitsInStock + " units in stock"; } else { //tell the user lblMessage.CssClass = "validator-message"; lblMessage.Text = "Item out of Stock."; } } else { //Add the requested number of items to the cart under the selected client's name if (cbxCustomer.SelectedValue != "") { //get input int numberToOrder = int.Parse(cbxQuantity.SelectedValue); float unitPrice = (float)products.GetUnitPriceByProdID(Convert.ToInt32(cbxItemName.SelectedValue)); float subTotal = (float)numberToOrder * unitPrice; string prodName = cbxItemName.SelectedItem.ToString(); int prodID = Convert.ToInt32(cbxItemName.SelectedValue); custID = cbxCustomer.SelectedValue; //add the selected quantity of the item to the cart table in the DB cart.InsertCartItem(prodName, numberToOrder, prodID, custID, Session.SessionID, unitPrice, subTotal); products.UpdateInStock((short)(unitsInStock - numberToOrder), prodID); lblMessage.CssClass = "confirmation-message"; lblMessage.Text = numberToOrder + " items added to order."; lsvCart.DataSource = cart.GetDataByCustID(custID); lsvCart.DataBind(); } else { lblMessage.CssClass = "validator-message"; lblMessage.Text = "Please select a client"; } } } else { lblMessage.Text = "Please select a quantity between 1 and max in stock"; lblMessage.CssClass = "validator-message"; } }