//protected void tarikhDetailsGrid_SelectedIndexChanged(object sender, EventArgs e)
    //{
    //    GridViewRow row = ((GridView)sender).SelectedRow;

    //    if (row == null) return;

    //    ModalPopupExtender Extender = row.FindControl("extPerson") as ModalPopupExtender;


    //    if (Extender != null)
    //    {
    //        Extender.Show();
    //    }
    //}

  
    //protected void tarikhDetailsGrid_RowDataBound(object sender, GridViewRowEventArgs e)
    //{
    //    e.Row.Cells[0].Visible = false;
    //}
    //protected void tarikhListGrid_RowEditing(object sender, GridViewEditEventArgs e)
    //{
    //    this.tarikhListGrid.EditIndex = e.NewEditIndex;
    //    this.tarikhListGrid.DataSource = (List<ATTTarikh>)Session["TarikhList"];
    //    this.tarikhListGrid.DataBind();
    //}
    //protected void tarikhListGrid_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    //{
    //    this.tarikhListGrid.EditIndex = -1;
    //    this.tarikhListGrid.DataSource = (List<ATTTarikh>)Session["TarikhList"];
    //    this.tarikhListGrid.DataBind();
    //}
    //protected void tarikhListGrid_RowUpdating(object sender, GridViewUpdateEventArgs e)
    //{
    //    List<ATTTarikh> tarikhLst=(List<ATTTarikh>)Session["TarikhList"];
    //    int personId = Convert.ToInt32(this.tarikhListGrid.DataKeys[(e.RowIndex)].Values["PersonID"]);

    //    int index = tarikhLst.FindIndex
    //    (
    //        delegate(ATTTarikh obj)
    //        {
    //            return obj.PersonID == personId;

    //        }
    //    );

        
    //    tarikhLst[index].TakenTime = ((TextBox)tarikhListGrid.Rows[e.RowIndex].Cells[1].FindControl("takenDateTxtEdit")).Text;
    //    tarikhLst[index].PresentDate = ((TextBox)tarikhListGrid.Rows[e.RowIndex].Cells[2].FindControl("presentDateTxtEdit")).Text;
    //    tarikhLst[index].Action = "E";
    //    Session["TarikhList"] = tarikhLst;
    //    this.tarikhListGrid.EditIndex = -1;
    //    this.tarikhListGrid.DataSource = (List<ATTTarikh>)Session["TarikhList"];
    //    this.tarikhListGrid.DataBind();





    //}
    protected void saveTarikhListBtn_Click(object sender, EventArgs e)
    {
        if (this.tarikhGrid.SelectedIndex > -1)
        {
            
            ATTTarikh tarikh=new ATTTarikh();
            List<ATTTarikh> listTarikh = new List<ATTTarikh>();
           
            tarikh.CaseID=int.Parse(((GridView)CaseSearch1.FindControl("grdCase")).SelectedRow.Cells[2].Text);
            tarikh.TarikhDate = tarikhGrid.SelectedRow.Cells[0].Text;
            tarikh.TarikhTime =((TextBox)tarikhGrid.SelectedRow.FindControl("tarikhTimeTxt")).Text;
            tarikh.Action="E";

        
        List<ATTTarikh> tarikhLst = (List<ATTTarikh>)Session["TarikhList"];
        try
        {
            BLLTarikh.AddTarikhDetails(tarikhLst);
            BLLTarikh.AddTarikh(listTarikh);
            lblStatusMessage.Text = "Tarikh List Updated Successfully";
            this.programmaticModalPopup.Show();
            return;
        }
        catch (Exception ex)
        {
            this.lblStatusMessage.Text = "Tarikh List Could not be updated " + ex.Message;
            this.programmaticModalPopup.Show();
            return;
        }
    }

    }
        public static List <ATTTarikh> GetTarikhDetails(int caseId, string tarikhDate)
        {
            List <ATTTarikh> lst = new List <ATTTarikh>();

            try
            {
                DataTable dt = DLLTarikh.GetTarikhDetails(caseId, tarikhDate);
                foreach (DataRow row in dt.Rows)
                {
                    ATTTarikh obj = new ATTTarikh();
                    obj.CaseID      = int.Parse(row["CASE_ID"].ToString());
                    obj.PersonID    = int.Parse(row["PERSON_ID"].ToString());
                    obj.PersonName  = row["FULLNAME"].ToString();
                    obj.TarikhDate  = row["TAREKH_DATE"].ToString();
                    obj.PresentDate = row["PRESENT_DATE"].ToString();
                    obj.TakenTime   = row["TAKEN_DATE"].ToString();
                    obj.TarikhTime  = row["TAREKH_TIME"].ToString();
                    obj.Action      = "N";
                    lst.Add(obj);
                }
                return(lst);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public static List <ATTTarikh> GetTarikh(int caseId)
        {
            List <ATTTarikh> lst = new List <ATTTarikh>();

            try
            {
                DataTable dt = DLLTarikh.GetTarikh(caseId);
                foreach (DataRow row in dt.Rows)
                {
                    ATTTarikh obj = new ATTTarikh();
                    obj.CaseID     = int.Parse(row["CASE_ID"].ToString());
                    obj.TarikhDate = row["TAREKH_DATE"].ToString();
                    obj.TarikhTime = row["TAREKH_TIME"].ToString();
                    obj.Action     = "N";
                    lst.Add(obj);
                }
                return(lst);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    protected void TarikhFunction()
    {
        if (tarikhGrid.SelectedIndex < 0)
        {
            if (tarikhDateTxt.Text == "")
            {
                this.lblStatusMessage.Text = "कृपया तारिख मिति राख्नुहोस्";
                this.programmaticModalPopup.Show();
                return;
            }

            List<ATTTarikh> lst = (List<ATTTarikh>)Session["Tarikh"];
            ATTTarikh obj = new ATTTarikh();
            obj.TarikhDate = tarikhDateTxt.Text;
            obj.TarikhTime = tarikhTimeTxt.Text;
            obj.CaseID = int.Parse(((GridView)CaseSearch1.FindControl("grdCase")).SelectedRow.Cells[2].Text);
            obj.Action = "A";
            obj.EntryBy = entryBy;
            lst.Add(obj);
            tarikhGrid.DataSource = lst;
            tarikhGrid.DataBind();
            tarikhGrid.SelectedIndex = tarikhGrid.Rows.Count - 1;
            Session["TarikhList1"] = lst;
        }
        else if (tarikhGrid.SelectedIndex > -1)
        {
            List<ATTTarikh> lst = (List<ATTTarikh>)Session["Tarikh"];
            lst[this.tarikhGrid.SelectedIndex].TarikhTime = tarikhTimeTxt.Text;
            lst[this.tarikhGrid.SelectedIndex].CaseID= int.Parse(((GridView)CaseSearch1.FindControl("grdCase")).SelectedRow.Cells[2].Text);
            lst[this.tarikhGrid.SelectedIndex].Action = "E";
            tarikhGrid.DataSource = lst;
            tarikhGrid.DataBind();
            
            Session["TarikhList1"] = lst;
        }
    }
    protected void addBtn_Click(object sender, EventArgs e)
    {
        List<ATTTarikh> lstTarikh = (List<ATTTarikh>)Session["TarikhList"];
        if (tarikhGrid.SelectedIndex<0)
            lstTarikh = new List<ATTTarikh>();
       

        foreach (GridViewRow grow in grdLitigantsApp.Rows)
        {
            if (((CheckBox)grow.FindControl("chk")).Checked)
            {
                ATTTarikh obj = new ATTTarikh();

                obj.CaseID = int.Parse(grow.Cells[1].Text.Trim());
                obj.PersonID = int.Parse(grow.Cells[2].Text.Trim());
                obj.PersonType = "S";
                obj.PersonName = grow.Cells[6].Text;
                obj.Action = "A";
                lstTarikh.Add(obj);

            }
            foreach (GridViewRow grow1 in ((GridView)grow.FindControl("grdAttorney1")).Rows)
            {
                if (((CheckBox)grow1.FindControl("chk")).Checked)
                {
                    ATTTarikh obj = new ATTTarikh();
                    obj.CaseID = int.Parse(grow1.Cells[0].Text.Trim());
                    obj.PersonID = int.Parse(grow1.Cells[2].Text.Trim());
                    obj.PersonType = "W";
                    obj.Action = "A";
                    obj.PersonName = grow1.Cells[8].Text;

                    lstTarikh.Add(obj);
                }
            }
        }

        foreach (GridViewRow grow in grdLitigantRes.Rows)
        {
            if (((CheckBox)grow.FindControl("chkRes")).Checked)
            {
                ATTTarikh obj = new ATTTarikh();
                obj.CaseID = int.Parse(grow.Cells[1].Text.Trim());
                obj.PersonID = int.Parse(grow.Cells[2].Text.Trim());
                obj.PersonType = "S";
                obj.Action = "A";
                obj.PersonName = grow.Cells[6].Text;
                lstTarikh.Add(obj);
            }
            foreach (GridViewRow grow1 in ((GridView)grow.FindControl("grdAttorney")).Rows)
            {
                if (((CheckBox)grow1.FindControl("chk")).Checked)
                {
                    ATTTarikh obj = new ATTTarikh();
                    obj.CaseID = int.Parse(grow1.Cells[0].Text.Trim());
                    obj.PersonID = int.Parse(grow1.Cells[2].Text.Trim());
                    obj.PersonType = "W";
                    obj.Action = "A";
                    obj.PersonName = grow1.Cells[8].Text;
                    
                    lstTarikh.Add(obj);
                }
            }
        }

        //throw error if none of the litigants are selected
        if (lstTarikh.Count==0)
        {
            lblStatusMessage.Text = "No data selected";
            this.programmaticModalPopup.Show();
            return;
        }

        

        if (lstTarikh.Count > 0)
        {
            
            //removing multiple occurences of person_id in case of attorney
            foreach (ATTTarikh obj in lstTarikh)
            {
                int personId = obj.PersonID;
                int count = 0;

                obj.EntryBy = entryBy;
                for (int i = 0; i < lstTarikh.Count; i++)
                {
                    if (personId == lstTarikh[i].PersonID)
                       {
                           count++;
                        if (count > 1)
                        {
                            lstTarikh[i].Action = "Rem";
                        }
                    }
                }
            }
        }

      
       
       
        lstTarikh.RemoveAll(
            delegate(ATTTarikh obj)
            {
                return obj.Action == "Rem";
            }

            );
        
        Session["TarikhList"] = lstTarikh;
        tarikhListGrid.DataSource = lstTarikh;
        tarikhListGrid.DataBind();

    }