protected void btnSubmit_Click(object sender, EventArgs e)
    {
        if (this.txtItemCategoryName_Rqd.Text == "")
        {
            this.lblStatusMessage.Text = "Please enter item category name.";
            this.programmaticModalPopup.Show();
            this.lblStatus.Focus();
            return;
        }
        ATTInvItemsCategory itemsCategory = (ATTInvItemsCategory)Session["ItemCategory"];

        List <ATTInvItemsCategory> lstall = (List <ATTInvItemsCategory>)Session["ItemCategory_List"];

        if (lstItemCategory.SelectedIndex == -1)
        {
            bool Exists = lstall.Exists(
                delegate(ATTInvItemsCategory ob)
            {
                return(ob.ItemsCategoryName == txtItemCategoryName_Rqd.Text);
            }

                );

            if (Exists)
            {
                this.lblStatusMessage.Text = "Item category name already exists";
                this.programmaticModalPopup.Show();
                return;
            }
            else
            {
                int count = 0;

                foreach (ATTInvItemSubCategory varNew in itemsCategory.LstItemSubCategory)
                {
                    foreach (ATTInvItemsCategory var in lstall)
                    {
                        int index = var.LstItemSubCategory.FindIndex(
                            delegate(ATTInvItemSubCategory ob)
                        {
                            return(ob.ItemsSubCategoryName == varNew.ItemsSubCategoryName);
                        }
                            );
                        if (index >= 0)
                        {
                            count++;
                        }
                    }
                }

                if (count > 0)
                {
                    this.lblStatusMessage.Text = "Already Exists";
                    this.programmaticModalPopup.Show();
                    return;
                }
                else
                {
                    itemsCategory.Active            = (chkICActive.Checked ? "Y" : "N");
                    itemsCategory.EntryBy           = ((ATTUserLogin)Session["Login_User_Detail"]).UserName;
                    itemsCategory.ItemsCategoryName = txtItemCategoryName_Rqd.Text;
                    if (lstItemCategory.SelectedIndex >= 0)
                    {
                        itemsCategory.Action = "E";
                    }
                    else
                    {
                        itemsCategory.Action = "A";
                    }

                    if (BLLInvItemsCategory.AddUpdateItemCategory(itemsCategory))
                    {
                        this.lblStatusMessage.Text = "Information Saved";
                        this.programmaticModalPopup.Show();
                    }
                    else
                    {
                        this.lblStatusMessage.Text = "Information could not be Saved";
                        this.programmaticModalPopup.Show();
                    }
                }
            }
        }
        else
        {
            bool valid = true;
            int indx = lstall.FindIndex(
                delegate(ATTInvItemsCategory ob)
            {
                return(ob.ItemsCategoryName == txtItemCategoryName_Rqd.Text);
            }

                );

            if (indx > 0)
            {
                if (indx != lstItemCategory.SelectedIndex)
                {
                    valid = false;
                }
            }
            if (!valid)
            {
                this.lblStatusMessage.Text = "Item category name already exists";
                this.programmaticModalPopup.Show();
                return;
            }
            else
            {
                int count = 0;

                foreach (ATTInvItemSubCategory varNew in itemsCategory.LstItemSubCategory)
                {
                    for (int i = 0; i < lstall.Count; i++)
                    {
                        if (i != lstItemCategory.SelectedIndex)
                        {
                            int index = lstall[i].LstItemSubCategory.FindIndex(
                                delegate(ATTInvItemSubCategory ob)
                            {
                                return(ob.ItemsSubCategoryName == varNew.ItemsSubCategoryName);
                            }
                                );
                            if (index >= 0)
                            {
                                count++;
                            }
                        }
                    }
                }

                if (count > 0)
                {
                    this.lblStatusMessage.Text = "Already Exists";
                    this.programmaticModalPopup.Show();
                    return;
                }
                else
                {
                    itemsCategory.Active            = (chkICActive.Checked ? "Y" : "N");
                    itemsCategory.EntryBy           = ((ATTUserLogin)Session["Login_User_Detail"]).UserName;
                    itemsCategory.ItemsCategoryName = txtItemCategoryName_Rqd.Text;
                    if (lstItemCategory.SelectedIndex >= 0)
                    {
                        itemsCategory.Action = "E";
                    }
                    else
                    {
                        itemsCategory.Action = "A";
                    }

                    if (BLLInvItemsCategory.AddUpdateItemCategory(itemsCategory))
                    {
                        this.lblStatusMessage.Text = "Information Saved";
                        this.programmaticModalPopup.Show();
                    }
                    else
                    {
                        this.lblStatusMessage.Text = "Information could not be Saved";
                        this.programmaticModalPopup.Show();
                    }
                }
            }
        }



        ClearitemCategory();
    }