public FindDesignPrivateProjectProductivityDateRangeDataSet FindDesignPrivateProjectProductivityDateRange(string strFirstProject, string strSecondProject, DateTime datStartDate, DateTime datEndDate)
        {
            try
            {
                aFindDesignPrivateProjectProductivityDateRangeDataSet      = new FindDesignPrivateProjectProductivityDateRangeDataSet();
                aFindDesignPrivateProjectProductivityDateRangeTableAdapter = new FindDesignPrivateProjectProductivityDateRangeDataSetTableAdapters.FindDesignPrivateProjectProductivityDateRangeTableAdapter();
                aFindDesignPrivateProjectProductivityDateRangeTableAdapter.Fill(aFindDesignPrivateProjectProductivityDateRangeDataSet.FindDesignPrivateProjectProductivityDateRange, strFirstProject, strSecondProject, datStartDate, datEndDate);
            }
            catch (Exception Ex)
            {
                TheEventLogClass.InsertEventLogEntry(DateTime.Now, "Project Productivity Reports Class // Find Design Private Project Productivity Date Range " + Ex.Message);
            }

            return(aFindDesignPrivateProjectProductivityDateRangeDataSet);
        }
        private void btnSearch_Click(object sender, RoutedEventArgs e)
        {
            int      intCounter;
            int      intSecondCounter;
            int      intNumberForRecords;
            int      intSecondNumberForRecords;
            string   strValueForValidation;
            bool     blnFatalError      = false;
            bool     blnThereIsAProblem = false;
            DateTime datStartDate       = DateTime.Now;
            DateTime datEndDate         = DateTime.Now;
            string   strFirstProject    = "";
            string   strSecondProject   = "";
            string   strErrorMessage    = "";
            bool     blnItemFound;
            string   strProjectID;
            string   strProjectName;
            decimal  decTotalHours;

            try
            {
                //clearing the dataset
                TheProjectProductivityReportDataSet.projectproductivityreport.Rows.Clear();

                //beginning data validation
                strValueForValidation = txtStartDate.Text;
                blnThereIsAProblem    = TheDataValidationClass.VerifyDateData(strValueForValidation);
                if (blnThereIsAProblem == true)
                {
                    blnFatalError    = true;
                    strErrorMessage += "The Start Date is not a Date\n";
                }
                else
                {
                    datStartDate = Convert.ToDateTime(strValueForValidation);
                }
                strValueForValidation = txtEndDate.Text;
                blnThereIsAProblem    = TheDataValidationClass.VerifyDateData(strValueForValidation);
                if (blnThereIsAProblem == true)
                {
                    blnFatalError    = true;
                    strErrorMessage += "The End Date is not a Date\n";
                }
                else
                {
                    datEndDate = Convert.ToDateTime(strValueForValidation);
                }

                if (gblnAllProjects == false)
                {
                    strFirstProject = txtFirstProject.Text;
                    if (strFirstProject == "")
                    {
                        blnFatalError    = true;
                        strErrorMessage += "The First Project ID is not Entered\n";
                    }
                    strSecondProject = txtSecondProject.Text;
                    if (strSecondProject == "")
                    {
                        blnFatalError    = true;
                        strErrorMessage += "The Second Project ID is not Entered\n";
                    }
                }

                if (blnFatalError == true)
                {
                    TheMessagesClass.ErrorMessage(strErrorMessage);
                    return;
                }
                else
                {
                    blnFatalError = TheDataValidationClass.verifyDateRange(datStartDate, datEndDate);
                    if (blnFatalError == true)
                    {
                        TheMessagesClass.ErrorMessage("The Start Date is after the End Date");
                        return;
                    }
                }

                if (gblnAllProjects == true)
                {
                    TheFindProjectProductivityByDateRangeDataSet = TheProjectProductivityReportsClass.FindProjectProductivityByDateRange(datStartDate, datEndDate);

                    intNumberForRecords = TheFindProjectProductivityByDateRangeDataSet.FindProjectProductivityTotalsByDateRange.Rows.Count - 1;

                    if (intNumberForRecords > -1)
                    {
                        for (intCounter = 0; intCounter <= intNumberForRecords; intCounter++)
                        {
                            ProjectProductivityReportDataSet.projectproductivityreportRow NewProjectRow = TheProjectProductivityReportDataSet.projectproductivityreport.NewprojectproductivityreportRow();

                            NewProjectRow.AssignedProjectID = TheFindProjectProductivityByDateRangeDataSet.FindProjectProductivityTotalsByDateRange[intCounter].AssignedProjectID;
                            NewProjectRow.ProjectName       = TheFindProjectProductivityByDateRangeDataSet.FindProjectProductivityTotalsByDateRange[intCounter].ProjectName;
                            NewProjectRow.TotalHours        = TheFindProjectProductivityByDateRangeDataSet.FindProjectProductivityTotalsByDateRange[intCounter].TotalHours;

                            TheProjectProductivityReportDataSet.projectproductivityreport.Rows.Add(NewProjectRow);
                        }
                    }

                    //adding design productivity
                    TheFindDesignProjectProductivityByDateRangeDataSet = TheProjectProductivityReportsClass.FindDesignProjectProductivityByDateRange(datStartDate, datEndDate);

                    intNumberForRecords       = TheFindDesignProjectProductivityByDateRangeDataSet.FindDesignProjectProductivityByDateRange.Rows.Count - 1;
                    intSecondNumberForRecords = TheProjectProductivityReportDataSet.projectproductivityreport.Rows.Count - 1;

                    if (intNumberForRecords > -1)
                    {
                        for (intCounter = 0; intCounter <= intNumberForRecords; intCounter++)
                        {
                            blnItemFound   = false;
                            strProjectID   = TheFindDesignProjectProductivityByDateRangeDataSet.FindDesignProjectProductivityByDateRange[intCounter].AssignedProjectID;
                            strProjectName = TheFindDesignProjectProductivityByDateRangeDataSet.FindDesignProjectProductivityByDateRange[intCounter].ProjectName;
                            decTotalHours  = TheFindDesignProjectProductivityByDateRangeDataSet.FindDesignProjectProductivityByDateRange[intCounter].TotalHours;

                            if (intSecondNumberForRecords > -1)
                            {
                                for (intSecondCounter = 0; intSecondCounter <= intSecondNumberForRecords; intSecondCounter++)
                                {
                                    if (strProjectID == TheProjectProductivityReportDataSet.projectproductivityreport[intSecondCounter].AssignedProjectID)
                                    {
                                        TheProjectProductivityReportDataSet.projectproductivityreport[intSecondCounter].TotalHours += decTotalHours;
                                        blnItemFound = true;
                                    }
                                }
                            }

                            if (blnItemFound == false)
                            {
                                ProjectProductivityReportDataSet.projectproductivityreportRow NewProjectRow = TheProjectProductivityReportDataSet.projectproductivityreport.NewprojectproductivityreportRow();

                                NewProjectRow.AssignedProjectID = strProjectID;
                                NewProjectRow.ProjectName       = strProjectName;
                                NewProjectRow.TotalHours        = decTotalHours;

                                TheProjectProductivityReportDataSet.projectproductivityreport.Rows.Add(NewProjectRow);
                            }
                        }
                    }
                }
                else if (gblnAllProjects == false)
                {
                    TheFindPrivateProjectProductivityDateRangeDataSet = TheProjectProductivityReportsClass.FindPrivateProjectProductivityDateRange(strFirstProject, strSecondProject, datStartDate, datEndDate);

                    intNumberForRecords = TheFindPrivateProjectProductivityDateRangeDataSet.FindPrivateProjectProductivityDateRange.Rows.Count - 1;

                    if (intNumberForRecords > -1)
                    {
                        for (intCounter = 0; intCounter <= intNumberForRecords; intCounter++)
                        {
                            ProjectProductivityReportDataSet.projectproductivityreportRow NewProjectRow = TheProjectProductivityReportDataSet.projectproductivityreport.NewprojectproductivityreportRow();

                            NewProjectRow.AssignedProjectID = TheFindPrivateProjectProductivityDateRangeDataSet.FindPrivateProjectProductivityDateRange[intCounter].AssignedProjectID;
                            NewProjectRow.ProjectName       = TheFindPrivateProjectProductivityDateRangeDataSet.FindPrivateProjectProductivityDateRange[intCounter].ProjectName;
                            NewProjectRow.TotalHours        = TheFindPrivateProjectProductivityDateRangeDataSet.FindPrivateProjectProductivityDateRange[intCounter].TotalHours;

                            TheProjectProductivityReportDataSet.projectproductivityreport.Rows.Add(NewProjectRow);
                        }
                    }

                    //adding design productivity
                    TheFindDesignPrivateProjectProductivityDateRangeDataSet = TheProjectProductivityReportsClass.FindDesignPrivateProjectProductivityDateRange(strFirstProject, strSecondProject, datStartDate, datEndDate);

                    intNumberForRecords       = TheFindDesignPrivateProjectProductivityDateRangeDataSet.FindDesignPrivateProjectProductivityDateRange.Rows.Count - 1;
                    intSecondNumberForRecords = TheProjectProductivityReportDataSet.projectproductivityreport.Rows.Count - 1;

                    if (intNumberForRecords > -1)
                    {
                        for (intCounter = 0; intCounter <= intNumberForRecords; intCounter++)
                        {
                            blnItemFound   = false;
                            strProjectID   = TheFindDesignPrivateProjectProductivityDateRangeDataSet.FindDesignPrivateProjectProductivityDateRange[intCounter].AssignedProjectID;
                            strProjectName = TheFindDesignPrivateProjectProductivityDateRangeDataSet.FindDesignPrivateProjectProductivityDateRange[intCounter].ProjectName;
                            decTotalHours  = TheFindDesignPrivateProjectProductivityDateRangeDataSet.FindDesignPrivateProjectProductivityDateRange[intCounter].TotalHours;

                            if (intSecondNumberForRecords > -1)
                            {
                                for (intSecondCounter = 0; intSecondCounter <= intSecondNumberForRecords; intSecondCounter++)
                                {
                                    if (strProjectID == TheProjectProductivityReportDataSet.projectproductivityreport[intSecondCounter].AssignedProjectID)
                                    {
                                        TheProjectProductivityReportDataSet.projectproductivityreport[intSecondCounter].TotalHours += decTotalHours;
                                        blnItemFound = true;
                                    }
                                }
                            }

                            if (blnItemFound == false)
                            {
                                ProjectProductivityReportDataSet.projectproductivityreportRow NewProjectRow = TheProjectProductivityReportDataSet.projectproductivityreport.NewprojectproductivityreportRow();

                                NewProjectRow.AssignedProjectID = strProjectID;
                                NewProjectRow.ProjectName       = strProjectName;
                                NewProjectRow.TotalHours        = decTotalHours;

                                TheProjectProductivityReportDataSet.projectproductivityreport.Rows.Add(NewProjectRow);
                            }
                        }
                    }
                }


                dgrResults.ItemsSource = TheProjectProductivityReportDataSet.projectproductivityreport;
            }
            catch (Exception Ex)
            {
                TheEventLogClass.InsertEventLogEntry(DateTime.Now, "New Blue Jay ERP // Project Productivity Report // Search Button " + Ex.Message);

                TheMessagesClass.ErrorMessage(Ex.ToString());
            }
        }