private void GenerateFlowRows(ref DataTable table)
        {
            JobFlow jobflow = new JobFlow();
            JobTypeFlow jobtypeFlow = new JobTypeFlow();
            JobTracker jobtracker = new JobTracker();
            //var jobflows = jobflow.GetJobOverviewJobFlow();
            //var distinctProjectList = jobtracker.GetDistinctProjectList(Convert.ToDateTime(txtBoxStartDate.Text + " 00:00:00"), Convert.ToDateTime(txtBoxEndDate.Text + " 23:59:59"), txtBoxJobId.Text.Trim());

            foreach (JobTracker p in distincProjectList)
            {
                DataRow row = table.NewRow();
                row["HW No"] = p.HWNo == null ? "" : p.HWNo.Trim();
                row["SW No"] = p.SWNo == null ? "" : p.SWNo.Trim();
                row["Customer"] = p.Customer == null ? "" : p.Customer.Trim();
                row["Description"] = p.Description == null ? "" : p.Description.Trim();
                for (int x = 0; x < jobflowList.Count; x++)
                {
                    //var jobtypes = jobtypeFlow.GetJobTypeFlowListByJobFlow(jobflowList[x].Id);
                    for (int i = 0; i < jobtypeflowlist[x].Count; i++)
                    {
                        JobTracker j = new JobTracker();
                        string deptacro = "";
                        if (jobtypeflowlist[x][i].DepartmentId != null)
                            deptacro = jobtypeflowlist[x][i].departmentAcronym;

                        if (jobtypeflowlist[x][i].DepartmentId != null)
                        {
                            j = jobtracker.GetJobTrackerJobOverview(jobtypeflowlist[x][i].JobTypeId, p.SWNo, p.HWNo, Convert.ToDateTime(txtBoxStartDate.Text + " 00:00:00"), Convert.ToDateTime(txtBoxEndDate.Text + " 23:59:59"), Convert.ToInt32(jobtypeflowlist[x][i].DepartmentId));
                        }
                        else
                        {
                            j = jobtracker.GetJobTrackerJobOverview(jobtypeflowlist[x][i].JobTypeId, p.SWNo, p.HWNo, Convert.ToDateTime(txtBoxStartDate.Text + " 00:00:00"), Convert.ToDateTime(txtBoxEndDate.Text + " 23:59:59"));
                        }
                        if (j == null)
                        {
                            row[jobtypeflowlist[x][i].jobtypeAcronym + deptacro + "" + jobflowList[x].Id] = "";
                        }
                        else
                        {
                            row[jobtypeflowlist[x][i].jobtypeAcronym + deptacro + "" + jobflowList[x].Id] = j.Id + "|" + j.JobStatus + " " + Convert.ToDateTime(j.EndTime).ToString("dd-MMM-yyyy");
                        }
                    }
                }
                table.Rows.Add(row);
            }
        }
        private void GenerateSummaryRows(ref DataTable table)
        {
            Department dept = new Department();
            JobTypeDepartment jobtypeDepartment = new JobTypeDepartment();
            JobTracker jobtracker = new JobTracker();
            //joboverviewDepartment = dept.GetJobOverviewDepartment();
            distincProjectList = jobtracker.GetDistinctProjectList(Convert.ToDateTime(txtBoxStartDate.Text + " 00:00:00"), Convert.ToDateTime(txtBoxEndDate.Text + " 23:59:59"), txtBoxJobId.Text.Trim());
            joboverviewRow = new List<List<List<JobTracker>>>();
            for (int y = 0; y < distincProjectList.Count;y++ )
            {
                joboverviewRow.Add(new List<List<JobTracker>>());
                DataRow row = table.NewRow();
                row["HW No"] = distincProjectList[y].HWNo == null ? "" : distincProjectList[y].HWNo.Trim();
                row["SW No"] = distincProjectList[y].SWNo == null ? "" : distincProjectList[y].SWNo.Trim();
                row["Customer"] = distincProjectList[y].Customer == null ? "" : distincProjectList[y].Customer.Trim();
                row["Description"] = distincProjectList[y].Description == null ? "" : distincProjectList[y].Description.Trim();
                for (int x = 0; x < joboverviewDepartment.Count; x++)
                {
                    List<JobTracker> jtlist = new List<JobTracker>();
                    for (int i = 0; i < joboverviewJobType[x].Count; i++)
                    {
                        JobTracker l = jobtracker.GetJobTrackerJobOverview(joboverviewJobType[x][i].Id, distincProjectList[y].SWNo, distincProjectList[y].HWNo, Convert.ToDateTime(txtBoxStartDate.Text + " 00:00:00"), Convert.ToDateTime(txtBoxEndDate.Text + " 23:59:59"), joboverviewDepartment[x].Id);
                        jtlist.Add(l);
                    }
                    joboverviewRow[y].Add(jtlist);
                    JobTracker j = new JobTracker();
                    string curstatus = "";
                    int curindex = -1;
                    for (int i = 0; i < jtlist.Count; i++)
                    {
                        if (jtlist[i] == null)
                            continue;
                        else if (jtlist[i].JobStatus.IndexOf("On Hold") > -1)
                        {
                            curstatus = "On Hold";
                            curindex = i;

                            break;
                        }
                        else if (jtlist[i].JobStatus.IndexOf("In Progress") > -1)
                        {
                            if (curstatus != "In Progress")
                            {
                                curstatus = "In Progress";
                                curindex = i;
                            }
                        }
                        else if (jtlist[i].JobStatus.IndexOf("Completed") > -1 && curindex < 0)
                        {
                            if (curstatus == "")
                            {
                                curstatus = "Completed";
                                curindex = i;
                            }
                        }
                    }
                    if (curindex != -1)
                    {
                        j = jtlist[curindex];
                    }
                    //JobTracker j = jobtracker.GetJobTrackerJobOverview(p.SWNo, p.HWNo, Convert.ToDateTime(txtBoxStartDate.Text + " 00:00:00"), Convert.ToDateTime(txtBoxEndDate.Text + " 23:59:59"), d.Id);
                    if (j == null)
                    {
                        row[joboverviewDepartment[x].Acronym + "" + joboverviewDepartment[x].Id] = "";
                    }
                    else
                    {
                        row[joboverviewDepartment[x].Acronym + "" + joboverviewDepartment[x].Id] = joboverviewDepartment[x].Id + "|" + j.JobStatus + " " + Convert.ToDateTime(j.EndTime).ToString("dd-MMM-yyyy") + "|" + distincProjectList[y].HWNo + "|" + distincProjectList[y].SWNo;
                    }
                }
                table.Rows.Add(row);
            }
        }
 protected void lnkBtn_Command(object sender, CommandEventArgs e)
 {
     if (e.CommandName == "JobOverviewDetails")
     {
         JobTracker j = new JobTracker();
         j = j.GetJobTracker(Convert.ToInt32(e.CommandArgument),false);
         modalDetailLabelName.Text = j.fullname;
         modalDetailLabelJobType.Text = j.jobtype;
         modalDetailLabelJobStatus.Text = j.JobStatus;
         modalDetailLabelDate.Text = Convert.ToDateTime(j.ScheduleDate).ToString("dd-MMM-yyyy");
         modalDetailLabelStartTime.Text = Convert.ToDateTime(j.StartTime).ToString("hh:mm tt");
         modalDetailLabelEndTime.Text = Convert.ToDateTime(j.EndTime).ToString("hh:mm tt");
         modalDetailTxtBoxRemarks.Text = j.Remarks;
         this.programmaticModalPopupDetail.Show();
     }
     else if (e.CommandName == "JobOverviewSummary")
     {
         JobTypeDepartment jobtypeDepartment = new JobTypeDepartment();
         JobTracker jobtracker = new JobTracker();
         string argument = e.CommandArgument.ToString();
         string[] s = argument.Split('|');
         var jobtypes = jobtypeDepartment.GetJobOverviewJobType(Convert.ToInt32(s[0]));
         Dictionary<string, string> repeaterdata = new Dictionary<string, string>();
         for (int i = 0; i < jobtypes.Count; i++)
         {
             JobTracker j = jobtracker.GetJobTrackerJobOverview(jobtypes[i].Id, s[2], s[1], Convert.ToDateTime(txtBoxStartDate.Text + " 00:00:00"), Convert.ToDateTime(txtBoxEndDate.Text + " 23:59:59"), Convert.ToInt32(s[0]));
             if (j == null)
             {
                 repeaterdata.Add(jobtypes[i].Description, "");
             }
             else
             {
                 repeaterdata.Add(jobtypes[i].Description, j.JobStatus + " " + Convert.ToDateTime(j.EndTime).ToString("dd-MMM-yyyy"));
             }
         }
         modalSummaryRepeater.DataSource = repeaterdata;
         modalSummaryRepeater.DataBind();
         programmaticModalPopupSummary.Show();
     }
 }