protected void createNewProduct() { Dictionary <String, String> allExistingProdDict = (Dictionary <String, String>)Session[SessionFactory.ALL_PRODUCT_CREATE_PRODUCT_EXISTING_NAMES]; if (allExistingProdDict.ContainsKey(TextBox_Prod_Name.Text.Trim())) { Label_Status.Text = "Product Name Already Exists"; Label_Status.Visible = true; Label_Status.ForeColor = System.Drawing.Color.Red; } else if (Session[SessionFactory.CREATE_PRODUCT_SELECTED_PRODUCT_CAT] == null || Session[SessionFactory.CREATE_PRODUCT_SELECTED_PRODUCT_CAT].ToString().Equals("")) { Label_Status.Text = "Must select one product category"; Label_Status.Visible = true; Label_Status.ForeColor = System.Drawing.Color.Red; } else { if (!TextBox_Spec.Text.Equals("")) { getAddintionalProdSrvList(); TextBox_Spec.Text = ""; } ArrayList prodSpecList = (ArrayList)Session[SessionFactory.CREATE_PRODUCT_CHILD_PROD_SPEC_MAP]; Dictionary <String, String> rSpecUniqnessValidation = new Dictionary <string, string>(); String mainEntId = Session[SessionFactory.MAIN_BUSINESS_ENTITY_ID_STRING].ToString(); if (prodSpecList != null) { for (int i = 0; i < prodSpecList.Count; i++) { ShopChildProdsSpecs prodSpecObj = (ShopChildProdsSpecs)prodSpecList[i]; prodSpecObj.setProdName(TextBox_Prod_Name.Text); if (rSpecUniqnessValidation.ContainsKey(prodSpecObj.getEntityId() + ":" + prodSpecObj.getProdName() + ":" + prodSpecObj.getFeatId())) { prodSpecList.RemoveAt(i); } else { rSpecUniqnessValidation.Add(prodSpecObj.getEntityId() + ":" + prodSpecObj.getProdName() + ":" + prodSpecObj.getFeatId(), prodSpecObj.getEntityId()); if (prodSpecObj != null && prodSpecObj.getFileStream() != null && prodSpecObj.getFileStream().HasFile) { prodSpecObj.setImgPathInFileStore(Session[SessionFactory.MAIN_BUSINESS_ENTITY_ID_STRING].ToString()); } } } } ShopChildProdsInventory childProdObj = new ShopChildProdsInventory(); childProdObj.setCreatedBy(User.Identity.Name); childProdObj.setDateCreated(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); childProdObj.setEntityId(mainEntId); childProdObj.setMsrmntUnit(DropDownList_Unit_Of_Msrmnt.SelectedValue); childProdObj.setProdCatId(Session[SessionFactory.CREATE_PRODUCT_SELECTED_PRODUCT_CAT].ToString()); childProdObj.setProdName(TextBox_Prod_Name.Text); childProdObj.setQnty((!TextBox_Stock.Text.Equals("")?float.Parse(TextBox_Stock.Text):0)); childProdObj.setUnitListPrice(TextBox_List_Price.Text); childProdObj.setUnitSrcPrice(TextBox_Src_Price.Text); childProdObj.setCurrency(DropDownList_Curr.SelectedValue); try { BackEndObjects.ShopChildProdsInventory.insertShopChildProdsInventoryDB(childProdObj); if (prodSpecList != null) { BackEndObjects.ShopChildProdsSpecs.insertShopChildProdsSpecsListDB(prodSpecList); } //Refresh the session variable with the newly added product name allExistingProdDict.Add(childProdObj.getProdName(), childProdObj.getProdName()); Session[SessionFactory.ALL_PRODUCT_CREATE_PRODUCT_EXISTING_NAMES] = allExistingProdDict; Dictionary <String, ProductCategory> existingProdDict = MainBusinessEntity. getProductDetailsforMainEntitybyIdDB(mainEntId); Label_Status.Text = "Product/Service Details Created Successfully"; Label_Status.Visible = true; Label_Status.ForeColor = System.Drawing.Color.Green; DropDownList_Level1.SelectedIndex = -1; DropDownList_Level2.SelectedIndex = -1; DropDownList_Level3.SelectedIndex = -1; if (!existingProdDict.ContainsKey(DropDownList_Level1.SelectedValue)) { ArrayList newMainProdCat = new ArrayList(); newMainProdCat.Add(DropDownList_Level1.SelectedValue); MainBusinessEntity.insertProductDetailsforEntityDB(mainEntId, newMainProdCat); Label_Status.Text += "...New Product category added to your product list"; } DataTable dt = (DataTable)Session[SessionFactory.ALL_PRODUCT_PROD_DATA_GRID]; dt.Rows.Add(); int count = dt.Rows.Count - 1; dt.Rows[count]["ProdCatId"] = childProdObj.getProdCatId(); dt.Rows[count]["ProdName"] = childProdObj.getProdName(); dt.Rows[count]["Stock"] = childProdObj.getQnty(); dt.Rows[count]["msrmnt"] = childProdObj.getMsrmntUnit(); dt.Rows[count]["srcPrice"] = childProdObj.getUnitSrcPrice(); dt.Rows[count]["listPrice"] = childProdObj.getUnitListPrice(); dt.Rows[count]["curr"] = DropDownList_Curr.SelectedItem.Text; Session[SessionFactory.ALL_PRODUCT_PROD_DATA_GRID] = dt; ScriptManager.RegisterStartupScript(this, typeof(string), "RefreshProdGrid", "RefreshParent();", true); } catch (Exception ex) { Label_Status.Text = "Product/Service Details Creation Failed"; Label_Status.Visible = true; Label_Status.ForeColor = System.Drawing.Color.Red; } finally { Session.Remove(SessionFactory.CREATE_PRODUCT_CHILD_PROD_SPEC_MAP); Session.Remove(SessionFactory.CREATE_PRODUCT_SELECTED_PRODUCT_CAT); } } }