//static List<BenchOrder> GetOrderList(DataTable tbl,ATTBenchOrder obj)
        //{
        //    //object[] PKvalues ={obj.OrgID,
        //    //               obj.BenchTypeID,
        //    //               obj.BenchNo ,
        //    //               obj.FromDate ,
        //    //               obj.SeqNo ,
        //    //               obj.CaseID ,
        //    //               obj.AssignmentDate };
        //    //foreach (DataRow row in tbl.Rows.Find(PKvalues))
        //    //{

        //    //}
        //    List<BenchOrder> lst = new List<BenchOrder>();
        //    string filter = "case_id ='"+obj.CaseID+"' and org_id='"+obj.OrgID+"' and bench_type_id='"+obj.BenchTypeID+"' and bench_no='"+obj.BenchNo+"' and from_date='"+obj.FromDate+"' and seq_no='"+obj.SeqNo+"' and assignment_date='"+obj.AssignmentDate+"'";
        //    foreach (DataRow row in tbl.Select(filter))
        //    {
        //        BenchOrder objBO = new BenchOrder();
        //        objBO.OrderName = row["ORDERS_NAME"].ToString();
        //        objBO.OrderID = int.Parse(row["ORDER_ID"].ToString());
        //        objBO.Action = "N";
        //        lst.Add(objBO);
        //    }
        //    return lst;
        //}

        public static List <ATTBenchOrder> GetBenchOrders(int orgId, int benchTypeId, int benchNo, string fromDate, int seqNo, int caseId, string assignmentDate)
        {
            List <ATTBenchOrder> lst = new List <ATTBenchOrder>();


            try
            {
                DataTable dt = DLLBenchOrder.GetBenchOrders(orgId, benchTypeId, benchNo, fromDate, seqNo, caseId, assignmentDate);

                foreach (DataRow row in dt.Rows)
                {
                    ATTBenchOrder obj = new ATTBenchOrder();
                    obj.OrgID          = int.Parse(row["ORG_ID"].ToString());
                    obj.BenchTypeID    = int.Parse(row["BENCH_TYPE_ID"].ToString());
                    obj.BenchNo        = int.Parse(row["BENCH_NO"].ToString());
                    obj.FromDate       = row["FROM_DATE"].ToString();
                    obj.SeqNo          = int.Parse(row["SEQ_NO"].ToString());
                    obj.CaseID         = int.Parse(row["CASE_ID"].ToString());
                    obj.AssignmentDate = row["ASSIGNMENT_DATE"].ToString();

                    if (row["ORDERS_ID"] != DBNull.Value)
                    {
                        obj.OrderID   = int.Parse(row["ORDERS_ID"].ToString());
                        obj.OrderName = row["ORDERS_NAME"].ToString();
                    }
                    else
                    {
                        obj.Remarks = row["REMARKS"].ToString();
                    }
                    obj.BoSeqNo = int.Parse(row["BO_SEQ_NO"].ToString());

                    obj.Action = "N";

                    lst.Add(obj);
                }
                return(lst);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    protected void addBtn_Click(object sender, EventArgs e)
    {
        string remarks = othersTxt.Text;
        List <ATTBenchOrder> remarkList = (List <ATTBenchOrder>)Session["RemarksList"];

        if (benchAssignmentGrid.SelectedIndex < 0)
        {
            this.lblStatus.Text        = "Validation";
            this.lblStatusMessage.Text = "Please Select Bench Assignment First";
            this.programmaticModalPopup.Show();
            return;
        }
        if (othersTxt.Text == "")
        {
            this.lblStatus.Text        = "Validation";
            this.lblStatusMessage.Text = "Empty Field";
            this.programmaticModalPopup.Show();
            return;
        }
        ATTBenchOrder obj = new ATTBenchOrder();

        if (remarksGrid.SelectedIndex > -1)
        {
            remarkList[remarksGrid.SelectedIndex].Action  = "E";
            remarkList[remarksGrid.SelectedIndex].Remarks = othersTxt.Text;
            remarksGrid.DataSource = remarkList;
            remarksGrid.DataBind();
        }
        else
        {
            obj.Action  = "A";
            obj.Remarks = remarks;
            remarkList.Add(obj);
            remarksGrid.DataSource = remarkList;
            Session["RemarksList"] = remarkList;
            remarksGrid.DataBind();
        }
    }
    protected void saveBtn_Click(object sender, EventArgs e)
    {
        ATTUserLogin         user             = ((ATTUserLogin)Session["Login_User_Detail"]);
        List <ATTBenchOrder> lst              = ((List <ATTBenchOrder>)Session["BenchAssignment"]);
        List <ATTBenchOrder> checkedOrderList = new List <ATTBenchOrder>();
        List <ATTBenchOrder> orderList        = (List <ATTBenchOrder>)Session["OrderList"];

        foreach (GridViewRow row in orderGrid.Rows)
        {
            bool status = ((CheckBox)row.FindControl("selectCb")).Checked;
            int index = orderList.FindIndex
                        (
                delegate(ATTBenchOrder objBenchOrder)
            {
                return(objBenchOrder.OrderID == Convert.ToInt32(row.Cells[1].Text));
            }
                        );

            if (status == true && index > -1)
            {
                //do nothing
                orderList[index].Action = "N";
            }
            if (status == true && index < 0)
            {
                //add
                ATTBenchOrder obj = new ATTBenchOrder();
                obj.OrderID = Convert.ToInt32(row.Cells[1].Text);
                obj.Action  = "A";
                orderList.Add(obj);
            }
            if (status == false && index > -1)
            {
                //remove
                orderList[index].Action = "R";
            }
        }

        List <ATTBenchOrder> remarkList = (List <ATTBenchOrder>)Session["RemarksList"];

        foreach (ATTBenchOrder obj in remarkList)
        {
            orderList.Add(obj);
        }

        foreach (ATTBenchOrder objBenchOrder in orderList)
        {
            objBenchOrder.OrgID          = int.Parse(this.organisationddl_Rqd.SelectedValue);
            objBenchOrder.BenchTypeID    = int.Parse(this.benchtypeddl.SelectedValue);
            objBenchOrder.BenchNo        = Convert.ToInt32(this.benchAssignmentGrid.SelectedRow.Cells[3].Text);
            objBenchOrder.CaseID         = Convert.ToInt32(this.benchAssignmentGrid.SelectedRow.Cells[0].Text);
            objBenchOrder.FromDate       = this.benchAssignmentGrid.SelectedRow.Cells[4].Text;
            objBenchOrder.SeqNo          = Convert.ToInt32(this.benchAssignmentGrid.SelectedRow.Cells[5].Text);
            objBenchOrder.AssignmentDate = this.benchAssignmentGrid.SelectedRow.Cells[6].Text;
            objBenchOrder.EntryBy        = user.UserName;
        }

        try
        {
            BLLBenchOrder.UpdateCaseBenchOrders(orderList);
            ClearControls();
            this.lblStatus.Text        = "Success";
            this.lblStatusMessage.Text = "Updated Successfully";
            this.programmaticModalPopup.Show();
        }
        catch (Exception ex)
        {
            this.lblStatus.Text        = "Error";
            this.lblStatusMessage.Text = "Update Failed " + ex.Message;
            this.programmaticModalPopup.Show();
        }
    }
        public static List <ATTBenchOrder> GetBenchAssignments(int?orgId, int?bench_type_id, string assignment_date)
        {
            List <ATTBenchOrder> lst = new List <ATTBenchOrder>();


            try
            {
                DataTable dt = DLLBenchOrder.GetBenchAssignments(orgId, bench_type_id, assignment_date);

                //DataColumn[] PK =
                //        {
                //            dt.Columns["ORG_ID"],
                //            dt.Columns["BENCH_TYPE_ID"],
                //            dt.Columns["BENCH_NO"],
                //            dt.Columns["FROM_DATE"],
                //            dt.Columns["SEQ_NO"],
                //            dt.Columns["CASE_ID"],
                //            dt.Columns["ASSIGNMENT_DATE"]
                //        };

                // dt.PrimaryKey = PK;

                foreach (DataRow row in dt.Rows)
                {
                    ATTBenchOrder obj = new ATTBenchOrder();
                    obj.CaseNumber     = row["CASE_NUMBER"].ToString();
                    obj.CaseReg        = row["REG_NUMBER"].ToString();
                    obj.Appelant       = row["APPELLANT"].ToString();
                    obj.Respondent     = row["RESPONDENT"].ToString();
                    obj.OrgID          = int.Parse(row["ORG_ID"].ToString());
                    obj.BenchTypeID    = int.Parse(row["BENCH_TYPE_ID"].ToString());
                    obj.AssignmentDate = row["ASSIGNMENT_DATE"].ToString();
                    obj.SeqNo          = int.Parse(row["SEQ_NO"].ToString());
                    obj.FromDate       = row["FROM_DATE"].ToString();
                    obj.BenchNo        = int.Parse(row["BENCH_NO"].ToString());
                    obj.Action         = "N";
                    obj.CaseID         = int.Parse(row["CASE_ID"].ToString());

                    //bool blnExists = lst.Exists
                    //(
                    //delegate(ATTBenchOrder o)
                    //{
                    //    return o.OrgID == obj.OrgID &&
                    //       o.BenchTypeID == obj.BenchTypeID &&
                    //       o.BenchNo == obj.BenchNo &&
                    //       o.FromDate == obj.FromDate &&
                    //       o.SeqNo == obj.SeqNo &&
                    //       o.CaseID == obj.CaseID &&
                    //       o.AssignmentDate == obj.AssignmentDate;
                    //}
                    //);

                    //if (blnExists == false)
                    //{
                    //    obj.LstBenchOrder = GetOrderList(dt, obj);
                    //    lst.Add(obj);
                    //}
                    lst.Add(obj);
                }
                return(lst);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }