public IActionResult GetById(int id)
        {
            IndividualProjectPage individualProjectPage = new IndividualProjectPage
            {
                ID                     = _projectRepository.Get(id).ProjectId,
                Name                   = _projectRepository.Get(id).ProjectName,
                desc                   = _projectRepository.Get(id).ProjectDescription,
                salaryBudget           = _projectRepository.Get(id).SalaryBudget,
                totalInvoice           = _projectRepository.Get(id).TotalInvoice,
                materialBudget         = _projectRepository.Get(id).MaterialBudget,
                spendToDate            = _projectRepository.Get(id).SpentToDate,
                startDate              = _projectRepository.Get(id).ProjectStartDate,
                endDate                = _projectRepository.Get(id).ProjectEndDate,
                completion             = _projectRepository.Get(id).PercentageComplete,
                recoredStoredCompleted = _projectRepository.Get(id).recordStoredCompleted,
                progressSurveyResult   = _projectRepository.Get(id).IsInProgressSurveyComplete,
                progressSurveySent     = _projectRepository.Get(id).IsInProgressSurveySent,
                followupSurveyResult   = _projectRepository.Get(id).IsFollowUpSurveyComplete,
                followupSurveySent     = _projectRepository.Get(id).IsFollowUpSurveySent,
                isProposal             = _projectRepository.Get(id).IsProposal,
                isUnderISO13485        = _projectRepository.Get(id).isUnderISO13485,
                businessCode           = _projectRepository.Get(id).BusinessCode,
                costMultiplier         = _projectRepository.Get(id).CostMultiplier
            };

            HashSet <Lead>   leadList   = new HashSet <Lead>();
            HashSet <Member> memberList = new HashSet <Member>();

            foreach (EmployeeAssignment item in _employeeAssignmentRepository.GetAll())
            {
                if (item.IsProjectManager)
                {
                    foreach (Employee employee in _employeeRepository.GetAll())
                    {
                        if (employee.EmployeeId == item.EmployeeId)
                        {
                            leadList.Add(new Lead(item.EmployeeId, employee.Name, employee.Salary));
                        }
                    }
                }
                else
                {
                    foreach (Employee employee in _employeeRepository.GetAll())
                    {
                        if (employee.EmployeeId == item.EmployeeId)
                        {
                            memberList.Add(new Member(item.EmployeeId, employee.Name, employee.Salary));
                        }
                    }
                }
            }
            individualProjectPage.lead   = leadList.ToList();
            individualProjectPage.member = memberList.ToList();

            individualProjectPage.phaseArr = new List <PhaseArr>();

            foreach (Phase phase in _phaseRepository.GetAll())
            {
                if (phase.ProjectId == id)
                {
                    individualProjectPage.phaseArr.Add(new PhaseArr(phase.PhaseId, phase.Name, phase.StartDate,
                                                                    phase.EndDate, phase.IsRecordDone, phase.PredictedDurationInWeeks, phase.ActualDurationInWeeks,
                                                                    phase.Impact));
                }
            }

            individualProjectPage.workloadArr = new List <WorkloadArr>();
            WorkloadArr currentWorkloadArr = new WorkloadArr();

            foreach (Project proj in _projectRepository.GetAll())
            {
                if (proj.ProjectId == id)
                {
                    foreach (Employee emp in _employeeRepository.GetAll())
                    {
                        ProjectedWorkload currentProjectedWorkload = _projectedWorkloadRepository.Get(proj, emp, DateTime.Now.Month,
                                                                                                      DateTime.Now.Year);
                        if (currentProjectedWorkload != null)
                        {
                            for (int k = 0; k < 6; k++)
                            {
                                int currentMonth = DateTime.Now.AddMonths(k).Month;
                                int currentYear  = DateTime.Now.AddMonths(k).Year;

                                if (emp.EmployeeId == _projectedWorkloadRepository
                                    .Get(proj, emp, currentMonth, currentYear).EmployeeId &&
                                    proj.ProjectId == _projectedWorkloadRepository
                                    .Get(proj, emp, currentMonth, currentYear).ProjectId)
                                {
                                    currentWorkloadArr.empID   = emp.EmployeeId;
                                    currentWorkloadArr.empName = emp.Name;
                                    currentWorkloadArr.SetSpecificMonth(k + 1, _projectedWorkloadRepository
                                                                        .Get(proj, emp, currentMonth, currentYear).Hours);
                                }
                            }
                            individualProjectPage.workloadArr.Add(new WorkloadArr(currentWorkloadArr.empID, currentWorkloadArr.empName, currentWorkloadArr.month1, currentWorkloadArr.month2,
                                                                                  currentWorkloadArr.month3, currentWorkloadArr.month4, currentWorkloadArr.month5, currentWorkloadArr.month6));
                        }
                    }
                }
            }

            individualProjectPage.invoiceArr = new List <InvoiceArr>();
            foreach (Invoice i in _invoiceRepository.GetAll())
            {
                if (i.ProjectId == id)
                {
                    individualProjectPage.invoiceArr.Add(new InvoiceArr(i.InvoiceAmount, i.InvoiceTime));
                }
            }

            individualProjectPage.material = new List <Material>();

            foreach (Phase phase in _phaseRepository.GetAll())
            {
                if (phase.ProjectId == id)
                {
                    individualProjectPage.material.Add(new Material(phase.PhaseId, phase.Name, phase.MaterialActualBudget,
                                                                    phase.MaterialProjectedBudget, phase.MaterialImpact));
                }
            }

            individualProjectPage.employeeSalaryList = new List <EmployeeSalary>();

            foreach (Employee emp in _employeeRepository.GetAll())
            {
                List <PhaseDetails> phaseDetailsList = new List <PhaseDetails>();
                foreach (Phase phase in _phaseRepository.GetAll())
                {
                    if (phase.ProjectId == id && _employeeAssignmentRepository.Get(phase.PhaseId, emp.EmployeeId) != null)
                    {
                        EmployeeAssignment currentEmployeeAssignment = _employeeAssignmentRepository.Get(phase.PhaseId, emp.EmployeeId);
                        phaseDetailsList.Add(new PhaseDetails(phase.PhaseId, phase.Name, currentEmployeeAssignment.ProjectedHours,
                                                              currentEmployeeAssignment.ActualHours, currentEmployeeAssignment.Impact));
                    }
                }
                if (phaseDetailsList.Count != 0)  //to prevent all the employees from being added to the employeeSalaryList.  Only employees that are working on the project will be added.
                {
                    individualProjectPage.employeeSalaryList.Add(new EmployeeSalary(emp.EmployeeId, emp.Name, emp.Salary, phaseDetailsList));
                }
            }

            return(Ok(individualProjectPage));
        }