protected void benchAssignmentGrid_SelectedIndexChanged(object sender, EventArgs e)
    {
        ClearGridChecks();
        this.assignmentDiv.Visible = true;
        int    orgID     = int.Parse(this.organisationddl_Rqd.SelectedValue);
        int    benchID   = int.Parse(this.benchtypeddl.SelectedValue);
        string benchDate = this.benchdateTxt.Text;
        int    caseID    = Convert.ToInt32(this.benchAssignmentGrid.SelectedRow.Cells[0].Text);
        int    benchNo   = Convert.ToInt32(this.benchAssignmentGrid.SelectedRow.Cells[3].Text);
        string fromDate  = this.benchAssignmentGrid.SelectedRow.Cells[4].Text;
        int    seqNo     = Convert.ToInt32(this.benchAssignmentGrid.SelectedRow.Cells[5].Text);

        List <ATTBenchOrder> orderList    = BLLBenchOrder.GetBenchOrders(orgID, benchID, benchNo, fromDate, seqNo, caseID, benchDate);
        List <ATTBenchOrder> orderListNew = new List <ATTBenchOrder>();
        List <ATTBenchOrder> remarksList  = new List <ATTBenchOrder>();

        foreach (ATTBenchOrder obj in orderList)
        {
            if (obj.OrderID == 0)
            {
                remarksList.Add(obj);
            }
            else
            {
                orderListNew.Add(obj);
            }
        }

        Session["RemarksList"] = remarksList;
        remarksGrid.DataSource = remarksList;
        remarksGrid.DataBind();

        foreach (GridViewRow row in orderGrid.Rows)
        {
            int orderId = Convert.ToInt32(row.Cells[1].Text);

            int index = orderListNew.FindIndex
                        (
                delegate(ATTBenchOrder obj)
            {
                return(obj.OrderID == orderId);
            }
                        );
            if (index > -1)
            {
                CheckBox cb = ((CheckBox)row.FindControl("selectCb"));
                cb.Checked = true;
            }
        }
        Session["OrderList"] = orderListNew;
        //orderGrid.DataBind();
    }
 protected void LoadBenchAssignment()
 {
     try
     {
         Session["BenchAssignment"] = BLLBenchOrder.GetBenchAssignments(int.Parse(this.organisationddl_Rqd.SelectedValue), int.Parse(this.benchtypeddl.SelectedValue), benchdateTxt.Text);
         List <ATTBenchOrder> lst = (List <ATTBenchOrder>)Session["BenchAssignment"];
         benchAssignmentGrid.DataSource = lst;
         benchAssignmentGrid.DataBind();
     }
     catch (Exception ex)
     {
         this.lblStatus.Text        = "Error";
         this.lblStatusMessage.Text = "Could not Load Bench Assignment" + ex.Message;
         this.programmaticModalPopup.Show();
     }
 }
    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();
        }
    }