예제 #1
0
        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);
                }
            }
        }