public void InsertGWCApprovalDetails(mApprovalLevelDetail ApprovalDetails, string[] conn)
        {
            BISPL_CRMDBEntities ce = new BISPL_CRMDBEntities(svr.GetEntityConnection(conn));

            try
            {
                ce.mApprovalLevelDetails.AddObject(ApprovalDetails);
                ce.SaveChanges();
            }
            catch { }
        }
        protected void gvUserCreation_OnRebind(object sender, EventArgs e)
        {
            iApprovalLevelMasterClient ApprovalClient = new iApprovalLevelMasterClient();
            CustomProfile profile = CustomProfile.GetProfile();

            try
            {
                string insertgata = Session["InsertData"].ToString();
                if (hdnStatus.Value == "Edit" && Session["InsertData"].ToString() == "")
                {
                    //List<vGWCGetApprovalDetailsForEdit> getlst = new List<vGWCGetApprovalDetailsForEdit>();
                    //DataSet ds = new DataSet();
                    gvUserCreation.DataSource = ApprovalClient.GWCGetApprovalDetailsForEdit(Convert.ToInt64(hdnApprovalID.Value), profile.DBConnection._constr);
                    //getlst = ApprovalClient.GWCGetApprovalDetailsForEdit(Convert.ToInt64(hdnApprovalID.Value), profile.DBConnection._constr).ToList();
                    //gvUserCreation.DataSource = getlst;
                    gvUserCreation.DataBind();

                    // getlst = ApprovalClient.GWCGetUserForApprovalMaster(Convert.ToInt64(hdnSelectedLevel.Value), stringss[i], profile.DBConnection._constr).ToList();


                    GetApproverList();
                }
                else if (hdnStatus.Value == "AddNew" && Hdn1.Value == "1" && Session["InsertData"].ToString() == "")
                {
                    GetApproverList();
                }
                else if (Session["InsertData"].ToString() == "Insert")
                {
                    /*Add By Suresh*/
                    int AvailableApprovalLevel = ApprovalClient.GetApprovalRecordByApvrlLevelID(Convert.ToInt16(hdnSelectedLevel.Value), Convert.ToInt64(hdnSelectedDepartment.Value), profile.DBConnection._constr);
                    if (AvailableApprovalLevel > 0)
                    {
                        //  ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "showAlert('Approval For This Level Are Already Available','Error','#')", true);
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Approval For This Level Are Already Available')", true);
                    }
                    else
                    {
                        mApprovalLevel ObjApproval = new mApprovalLevel();
                        ObjApproval.ObjectName              = "MaterialRequest";
                        ObjApproval.ApprovalLevel           = Convert.ToByte(hdnSelectedLevel.Value);
                        ObjApproval.NoOfApprovers           = Convert.ToByte(txtnoapprovar.Text);
                        ObjApproval.Active                  = "Y";
                        ObjApproval.TerritoryID             = Convert.ToInt64(hdnSelectedDepartment.Value);
                        ObjApproval.MinApprovalReq          = 0;
                        ObjApproval.MinApprovalReq          = 0;
                        ObjApproval.MaxAmount               = 0;
                        ObjApproval.IsLowerLevelApprovalReq = true;
                        if (hdnSelectedDepartment.Value != "" || hdnSelectedDepartment.Value != "0")
                        {
                            ObjApproval.OrderCancelInDays = ApprovalClient.GetCancelDays(Convert.ToInt64(hdnSelectedDepartment.Value), profile.DBConnection._constr);
                        }

                        int result = 0;

                        //if (hdnStatus.Value != "Edit")
                        //{
                        ObjApproval.CreatedBy    = profile.Personal.UserID.ToString();
                        ObjApproval.CreationDate = DateTime.Now;
                        result = ApprovalClient.InsertmApprovalLevel(ObjApproval, profile.DBConnection._constr);
                        // ObjApprovalDetail.ApprovalLevelID = result;
                        // ApprovalClient.UpdateApprovallevelID(result, profile.DBConnection._constr);
                        if (result != 0)
                        {
                            // WebMsgBox.MsgBox.Show("Record saved successfully");
                        }
                        //}
                        //else if (hdnStatus.Value == "Edit")
                        //{
                        //    ObjApproval.LastModifiedBy = profile.Personal.UserID.ToString();
                        //    ObjApproval.LastModifiedDate = DateTime.Now;
                        //    result= Convert.ToInt32(hdnApprovalID.Value);
                        //}
                        /*Add By Suresh*/

                        mApprovalLevelDetail ObjApprovalDetail = new mApprovalLevelDetail();
                        string[]             stringss          = new string[] { };
                        hdnUserIDs.Value = Session["Userlist"].ToString();
                        stringss         = hdnUserIDs.Value.Split(',');

                        ObjApprovalDetail.ApprovalLevelID = result;  //ObjApprovalDetail.ApprovalLevelID = 0;
                        ObjApprovalDetail.Active          = "Y";
                        ObjApprovalDetail.CreatedBy       = profile.Personal.UserID.ToString();
                        ObjApprovalDetail.CreationDate    = DateTime.Now;
                        ObjApprovalDetail.CompanyID       = Convert.ToInt64(hdnSelectedCompany.Value);
                        ObjApprovalDetail.DepartmentID    = Convert.ToInt64(hdnSelectedDepartment.Value);
                        if (chkand.Checked == true)
                        {
                            ObjApprovalDetail.ApproverLogic = "AND";
                        }
                        else
                        {
                            ObjApprovalDetail.ApproverLogic = "OR";
                        }

                        for (int i = 0; i < stringss.Length; i++)
                        {
                            ObjApprovalDetail.UserID = Convert.ToInt64(stringss[i].ToString());
                            ApprovalClient.InsertGWCApprovalDetails(ObjApprovalDetail, profile.DBConnection._constr);
                        }
                    }
                    GetApproverList();
                    Session["InsertData"] = "";
                }
            }
            catch (System.Exception ex)
            {
                Login.Profile.ErrorHandling(ex, "Approval Level Master", "gvUserCreation_OnRebind");
            }
            finally {
                ApprovalClient.Close();
            }
        }
        /// <summary>
        /// Save SaveApprovalLevelDetail To DataBase
        /// </summary>
        /// <param name="paraObjectName"></param>
        /// <param name="paraReferenceIDs"></param>
        /// <param name="paraInput"></param>
        /// <param name="paraUserID"></param>
        /// <returns></returns>
        public bool SaveApprovalLevelDetail(string paraUserIDs, long paraApprovalLevelID, mApprovalLevelDetail paraInput, string[] conn)
        {
            BISPL_CRMDBEntities ce = new BISPL_CRMDBEntities(svr.GetEntityConnection(conn));
            bool result            = false;

            try
            {
                string[] strings = new string[] { };
                strings = paraUserIDs.Split(',');
                long[] arrayIDs = strings.Select(x => long.Parse(x)).ToArray();

                List <mApprovalLevelDetail> objtApprovalDetail = new List <mApprovalLevelDetail>();

                var ListofID = from a in arrayIDs.AsEnumerable()
                               select new { NewID = a };

                XElement xmlApprovalDetail = new XElement("ApprovalDetailList", from a in ListofID
                                                          join m in objtApprovalDetail on a.NewID equals m.UserID into newTaskList
                                                          from newList in newTaskList.DefaultIfEmpty()
                                                          select new XElement("ApprovalList",
                                                                              new XElement("ApprovalLevelID", paraInput.ApprovalLevelID),
                                                                              new XElement("UserID", a.NewID),
                                                                              new XElement("Active", paraInput.Active == null ? "Y" : paraInput.Active),
                                                                              new XElement("CreatedBy", paraInput.CreatedBy == null ? "Admin" : paraInput.CreatedBy),
                                                                              new XElement("CreationDate", paraInput.CreationDate == null ? DateTime.Now : paraInput.CreationDate),
                                                                              new XElement("LastModifiedBy", paraInput.LastModifiedBy == null ? null : paraInput.LastModifiedBy),
                                                                              new XElement("LastModifiedDate", paraInput.LastModifiedDate == null ? null : paraInput.LastModifiedDate),
                                                                              new XElement("CompanyID", paraInput.CompanyID)

                                                                              ));
                ObjectParameter _paraXML = new ObjectParameter("xmlData", typeof(string));
                _paraXML.Value = xmlApprovalDetail.ToString();

                ObjectParameter _paraApprovalLevelID = new ObjectParameter("paraApprovalLevelID", typeof(long));
                _paraApprovalLevelID.Value = paraApprovalLevelID;

                //ObjectParameter _paraUserIDs = new ObjectParameter("paraUserIDs", typeof(string));
                //_paraUserIDs.Value = paraUserIDs;

                ObjectParameter[] obj = new ObjectParameter[] { _paraXML, _paraApprovalLevelID };
                ce.ExecuteFunction("SP_InsetIntoApprovalLevelDetail", obj);
                ce.SaveChanges();

                result = true;
            }
            catch (Exception ex)
            {
                result = false;
                // uc.ErrorTracking(ex, UserID, ConnectionStr);
            }
            return(result);
        }