public void SaveKRAItems(int EmployeeId, List <int> Items)
        {
            var Header     = new EmployeeAssignment();
            var headerItem = this.EmployeeAssignmentByEmployeeId(EmployeeId);

            if (headerItem != null)
            {
                Header = headerItem;
                _dbContext.Entry(Header).State = EntityState.Modified;
            }
            else
            {
                Header.Id       = 0;
                Header.Employee = EmployeeById(EmployeeId);
                _dbContext.Add(Header);
            }
            foreach (var item in Items)
            {
                var lineItem = new EmployeeKRAAssignment
                {
                    EmployeeAssignment = Header,
                    KeyResultArea      = KeyResultAreaById(item),
                    IsDeleted          = false,
                    EvaluationSeason   = ActiveSeason()
                };
                _dbContext.Add(lineItem);
            }
            _dbContext.SaveChanges();
        }
示例#2
0
        public JsonResult showAssignmentstatus([FromBody] AssignmentShowModel model)
        {
            model.Month++;
            List <AssignmentStatus> data = EmployeeAssignment.GetProjectsAndAssignmentsInfo(model);

            return(Json(data));
        }
示例#3
0
        public async Task <EmployeeAssignmentResponse> UpdateAsync(int id, EmployeeAssignment employeeAssignment)
        {
            var existingEmployeeAssignment = await _employeeAssignmentRepository.FindByIdAsync(id);

            if (existingEmployeeAssignment == null)
            {
                return(new EmployeeAssignmentResponse("EmployeeAssignment not found."));
            }

            existingEmployeeAssignment.StartDate  = employeeAssignment.StartDate != existingEmployeeAssignment.StartDate && employeeAssignment.StartDate != default(DateTime) ? employeeAssignment.StartDate : existingEmployeeAssignment.StartDate;
            existingEmployeeAssignment.EndDate    = employeeAssignment.EndDate != existingEmployeeAssignment.EndDate && employeeAssignment.EndDate != default(DateTime) ? employeeAssignment.EndDate : existingEmployeeAssignment.EndDate;
            existingEmployeeAssignment.FTEPerWeek = employeeAssignment.FTEPerWeek != existingEmployeeAssignment.FTEPerWeek && employeeAssignment.FTEPerWeek != default(Double) ? employeeAssignment.FTEPerWeek : existingEmployeeAssignment.FTEPerWeek;

            try
            {
                _employeeAssignmentRepository.Update(existingEmployeeAssignment);
                await _unitOfWork.CompleteAsync();

                return(new EmployeeAssignmentResponse(existingEmployeeAssignment));
            }
            catch (Exception ex)
            {
                return(new EmployeeAssignmentResponse($"An error occurred when updating the category: {ex.Message}"));
            }
        }
示例#4
0
        public IActionResult Get()
        {
            HashSet <MiddleLevelPage> middleLevelPageSet  = new HashSet <MiddleLevelPage>();
            List <MiddleLevelPage>    middleLevelPageList = new List <MiddleLevelPage>();

            DateTime currentDate = DateTime.Now;
            int      startMonth  = currentDate.Month;
            int      startYear   = currentDate.Year;

            foreach (Project project in _projectRepository.GetAll())
            {
                System.Diagnostics.Debug.Write("PHASE REPO SIZE: " + _phaseRepository.GetAll().Where(p => p.ProjectId == project.ProjectId).ToList().Count);
                foreach (Phase phase in _phaseRepository.GetAll().Where(p => p.ProjectId == project.ProjectId))
                {
                    foreach (Employee emp in _employeeRepository.GetAll())
                    {
                        MiddleLevelPage middleLevelPage = new MiddleLevelPage();  //this actually represents one json object in the middlelevelpage json array, and not the entire page

                        middleLevelPage.empID             = emp.EmployeeId;
                        middleLevelPage.projectID         = project.ProjectId;
                        middleLevelPage.empName           = emp.Name;
                        middleLevelPage.projectCompletion = project.PercentageComplete;
                        middleLevelPage.projectEndDate    = project.ProjectEndDate;
                        middleLevelPage.projectName       = project.ProjectName;

                        EmployeeAssignment ea = _employeeAssignmentRepository.Get(phase.PhaseId, emp.EmployeeId);

                        //If ea is null, then it means the Employee is not working in that Phase for that Project, so there is no workload data for that Employee
                        if (ea != null)
                        {
                            for (int k = 0; k < 6; k++)
                            {
                                int currentMonth = DateTime.Now.AddMonths(k).Month;
                                int currentYear  = DateTime.Now.AddMonths(k).Year;

                                ProjectedWorkload currentProjectedWorkload = _workloadRepository.Get(project.ProjectId,
                                                                                                     emp.EmployeeId, currentMonth, currentYear);

                                /*If currentProjectedWorkload is null, it means that the Employee doesn't have a workload row for the month.  Thus, we create the workload data
                                 * and set the hours worked to 0. This happens when a new month arrives, since each Employee only has workload data for the first 6 months
                                 * starting from when it is added.
                                 */
                                if (currentProjectedWorkload == null)
                                {
                                    ProjectedWorkload newMonthWorkload = new ProjectedWorkload(project.ProjectId, emp.EmployeeId, currentMonth, currentYear, 0);
                                    _workloadRepository.Add(newMonthWorkload);
                                    currentProjectedWorkload = _workloadRepository.Get(project.ProjectId,
                                                                                       emp.EmployeeId, currentMonth, currentYear);
                                }

                                middleLevelPage.SetMonthlyHoursWorked(k + 1, currentProjectedWorkload.Hours);
                            }
                            middleLevelPageSet.Add(middleLevelPage);
                        }
                    }
                }
            }

            return(Ok(middleLevelPageSet.ToList()));
        }
示例#5
0
        public async Task <EmployeeAssignmentResponse> SaveAsync(EmployeeAssignment employeeAssignment)
        {
            try
            {
                await _employeeAssignmentRepository.AddAsync(employeeAssignment);

                await _unitOfWork.CompleteAsync();

                return(new EmployeeAssignmentResponse(employeeAssignment));
            }
            catch (Exception ex)
            {
                return(new EmployeeAssignmentResponse($"An error occurred when saving the employee: {ex.Message}"));
            }
        }
示例#6
0
 public void Update(EmployeeAssignment employeeAssignment)
 {
     _context.EmployeeAssignments.Update(employeeAssignment);
 }
示例#7
0
 public void Remove(EmployeeAssignment employeeAssignment)
 {
     _context.EmployeeAssignments.Remove(employeeAssignment);
 }
示例#8
0
 public async Task AddAsync(EmployeeAssignment employeeAssignment)
 {
     await _context.EmployeeAssignments.AddAsync(employeeAssignment);
 }
示例#9
0
 public EmployeeAssignmentResponse(EmployeeAssignment employeeAssignment) : this(true, string.Empty, employeeAssignment)
 {
 }
示例#10
0
 private EmployeeAssignmentResponse(bool success, string message, EmployeeAssignment employeeAssignment) : base(success, message)
 {
     EmployeeAssignment = EmployeeAssignment;
 }
        public IActionResult Post(IndividualProjectPage page)
        {
            Project project = new Project(page.ID, page.Name, page.desc, page.startDate, page.endDate, page.completion, page.salaryBudget, page.totalInvoice, page.materialBudget, page.spendToDate,
                                          page.progressSurveySent, page.progressSurveyResult,
                                          page.followupSurveySent, page.followupSurveyResult, page.isProposal, page.costMultiplier, page.isUnderISO13485, page.businessCode, page.lead[0].name);

            // <-- in the param
            _projectRepository.Add(project);

            for (int i = 0; i < page.phaseArr.Count; i++)
            {
                PhaseArr currentPhaseArr = page.phaseArr[i];
                Phase    phase           = new Phase(currentPhaseArr.phaseID, page.ID, currentPhaseArr.name, currentPhaseArr.startDate, currentPhaseArr.endDate, currentPhaseArr.isRecordDone, currentPhaseArr.predictedDurationInWeeks,
                                                     currentPhaseArr.actualDurationInWeeks, currentPhaseArr.impact, 0, 0, null);
                phase.MaterialProjectedBudget = page.material[i].projectedBudget;
                phase.MaterialActualBudget    = page.material[i].actualBudget;
                phase.MaterialImpact          = page.material[i].impact;
                _phaseRepository.Add(phase);
            }

            EmployeeAssignment ea = new EmployeeAssignment();

            for (int i = 0; i < page.employeeSalaryList.Count; i++)
            {
                ea.EmployeeId = page.employeeSalaryList[i].empID;

                ea.Position         = "somePosition"; //hardcoded for now?
                ea.SalaryMultiplier = page.costMultiplier;

                for (int j = 0; j < page.employeeSalaryList[i].phaseDetailsList.Count; j++)
                {
                    PhaseDetails currentPhaseDetails = page.employeeSalaryList[i].phaseDetailsList[j];
                    ea.PhaseId        = currentPhaseDetails.phaseID;
                    ea.ActualHours    = currentPhaseDetails.actualHr;
                    ea.ProjectedHours = currentPhaseDetails.budgetHr;
                    ea.Impact         = currentPhaseDetails.impact;
                    for (int z = 0; z < page.lead.Count; z++)
                    {
                        if (ea.EmployeeId == page.lead[z].empID)
                        {
                            ea.IsProjectManager = true;
                        }
                        else
                        {
                            ea.IsProjectManager = false;
                        }
                    }
                    _employeeAssignmentRepository.Add(ea);
                }
            }

            ProjectedWorkload pw = new ProjectedWorkload();

            for (int i = 0; i < page.workloadArr.Count; i++)
            {
                WorkloadArr currentWorkloadArr = page.workloadArr[i];
                foreach (Employee e in _employeeRepository.GetAll())
                {
                    if (e.EmployeeId == currentWorkloadArr.empID)
                    {
                        pw.ProjectId  = page.ID;
                        pw.EmployeeId = e.EmployeeId;
                        for (int k = 0; k < 6; k++)
                        {
                            pw.Month = DateTime.Now.AddMonths(k).Month;
                            pw.Year  = DateTime.Now.AddMonths(k).Year;
                            //pw.Month = ControllerHelper.CalculateCurrentMonth(currentMonth, k-1);
                            pw.Hours = currentWorkloadArr.getHoursWorked(k + 1);
                            _projectedWorkloadRepository.Add(pw);
                        }
                    }
                }
            }

            foreach (InvoiceArr i in page.invoiceArr)
            {
                Invoice invoice = new Invoice(page.ID, "placeholdername", i.date, i.amount);
                _invoiceRepository.Add(invoice);
            }


            return(new OkObjectResult(201));
        }
示例#12
0
        /// <summary>
        /// Create or edit employee
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public EmployeeResponse CreateOrEdit(EmployeeRequest request)
        {
            EmployeeResponse response = new EmployeeResponse();



            var _empTypeDesc = _unitOfWork.FamilyRelationshipRepository.GetFirstOrDefault(x => x.ID == request.Data.EmpType) == null ? "" : _unitOfWork.FamilyRelationshipRepository.GetFirstOrDefault(x => x.ID == request.Data.EmpType).Code;
            var _statusDesc  = _unitOfWork.EmployeeStatusRepository.GetFirstOrDefault(x => x.ID == request.Data.EmpStatus) == null ? "" : _unitOfWork.EmployeeStatusRepository.GetFirstOrDefault(x => x.ID == request.Data.EmpStatus).Code;

            if (request.Data.EmpTypeDesc == string.Empty || request.Data.EmpTypeDesc == null)
            {
                request.Data.EmpTypeDesc = _empTypeDesc;
            }

            using (var transaction = _context.Database.BeginTransaction())
            {
                int _resultAffected = 0;
                //cek employee assignment, if empid exist with joint date
                long _emplId = GetEmployeeNo(request.Data.EmpID);
                if (_emplId == 0 && !String.IsNullOrEmpty(request.Data.LastEmpId))
                {
                    _emplId = GetEmployeeNo(request.Data.LastEmpId);
                }

                if (request.Data.IsFromAPI)
                {
                    //convert EmpType, Reff Emp ID & EmpStatus to Id
                    request.Data.EmpType = _context.FamilyRelationships.SingleOrDefault(x => x.Code == request.Data.EmpTypeDesc).ID;
                    request.Data.Status  = _context.EmployeeStatus.SingleOrDefault(x => x.Code == request.Data.EmpStatusDesc).ID;
                    if (request.Data.ReffEmpID != string.Empty)
                    {
                        request.Data.ReffEmpID = _context.Employees.SingleOrDefault(x => x.EmpID == request.Data.ReffEmpID).ID.ToString();
                    }
                }

                try
                {
                    var _qry = _context.Employees.SingleOrDefault(x => x.EmpID == request.Data.EmpID);
                    if (_qry != null)
                    {
                        // save the old data
                        var _oldentity = Mapper.Map <Employee, EmployeeModel>(_qry);
                        // update data
                        _qry.EmpName      = request.Data.EmpName;
                        _qry.BirthDate    = request.Data.Birthdate;
                        _qry.Gender       = request.Data.Gender;
                        _qry.Email        = CommonUtils.Encryptor(request.Data.Email, CommonUtils.KeyEncryptor);
                        _qry.EmpType      = request.Data.EmpType;
                        _qry.ReffEmpID    = request.Data.ReffEmpID;
                        _qry.Status       = request.Data.EmpStatus;
                        _qry.KTPNumber    = request.Data.KTPNumber;
                        _qry.HPNumber     = CommonUtils.Encryptor(request.Data.HPNumber, CommonUtils.KeyEncryptor);
                        _qry.ReffEmpID    = request.Data.ReffEmpID;
                        _qry.LastEmpID    = request.Data.LastEmpId;
                        _qry.ModifiedBy   = request.Data.ModifiedBy ?? "SYSTEM";
                        _qry.ModifiedDate = DateTime.Now;
                        _resultAffected   = _context.SaveChanges();

                        if (_resultAffected > 0)
                        {
                            CommandLog(true, ClinicEnums.Module.MASTER_EMPLOYEE, Constants.Command.EDIT_EMPLOYEE, request.Data.Account, request.Data, _oldentity);
                        }

                        var _qryEmpAss = _context.EmployeeAssignments.FirstOrDefault(x => x.EmployeeID == _emplId && x.StartDate == request.Data.StartDate);
                        if (_qryEmpAss != null)
                        {
                            _resultAffected         = 0;
                            _qryEmpAss.StartDate    = request.Data.StartDate;
                            _qryEmpAss.EndDate      = request.Data.EndDate.Value.ToString().Contains("1/1/0001") ? (DateTime)SqlDateTime.Null : request.Data.EndDate.Value;
                            _qryEmpAss.Department   = request.Data.Department;
                            _qryEmpAss.Region       = request.Data.Region;
                            _qryEmpAss.BusinessUnit = request.Data.BussinesUnit;
                            _qryEmpAss.EmpStatus    = request.Data.EmpStatus;
                            _qryEmpAss.LastEmpID    = request.Data.LastEmpId;
                            _qryEmpAss.ModifiedBy   = request.Data.ModifiedBy ?? "SYSTEM";
                            _qryEmpAss.ModifiedDate = DateTime.Now;
                            _resultAffected         = _context.SaveChanges();

                            var newEmployeeAssignment = new EmployeeAssignment
                            {
                                EmployeeID   = _qry.ID,
                                BusinessUnit = request.Data.BussinesUnit,
                                Department   = request.Data.Department,
                                StartDate    = request.Data.StartDate,
                                EndDate      = request.Data.EndDate,
                                Region       = request.Data.Region,
                                EmpStatus    = request.Data.EmpStatus,
                                LastEmpID    = request.Data.LastEmpId
                            };
                            if (_resultAffected > 0)
                            {
                                CommandLog(true, ClinicEnums.Module.EMPLOYEE_ASSIGNMENT, Constants.Command.EDIT_EMPLOYEEASSIGNMENT, request.Data.Account, newEmployeeAssignment, _qryEmpAss);
                            }
                        }


                        response.Message = string.Format(Messages.ObjectHasBeenUpdated, "Employee", _qry.EmpName, _qry.EmpID);
                    }
                    else
                    {
                        //cek dulu dgn Last Employee ID
                        var oldEmployee = _context.Employees.SingleOrDefault(x => x.EmpID == request.Data.LastEmpId);
                        if (oldEmployee != null)
                        {
                            long _newEmpId = 0;

                            //insert new in employee & employee assignment
                            if (request.Data.EmpTypeDesc.Trim() != Constants.Command.EmployeeRelationshipCode)
                            {
                                request.Data.EmpID = string.Format("{0}-{1}", request.Data.ReffEmpID, request.Data.EmpTypeDesc);
                            }

                            var _employeeEntity = Mapper.Map <EmployeeModel, Employee>(request.Data);
                            _employeeEntity.CreatedDate = DateTime.Now;
                            _employeeEntity.CreatedBy   = request.Data.Account.UserCode;

                            _context.Employees.Add(_employeeEntity);
                            _resultAffected = _context.SaveChanges();
                            if (_resultAffected > 0)
                            {
                                CommandLog(true, ClinicEnums.Module.MASTER_EMPLOYEE, Constants.Command.ADD_NEW_EMPLOYEE, request.Data.Account, _employeeEntity);
                                _newEmpId = _employeeEntity.ID;
                            }

                            if (request.Data.EmpTypeDesc.Trim() == Constants.Command.EmployeeRelationshipCode)
                            {
                                var _employeeAssignmentEntity = new EmployeeAssignment
                                {
                                    EmployeeID   = _employeeEntity.ID,
                                    BusinessUnit = request.Data.BussinesUnit,
                                    Department   = request.Data.Department,
                                    StartDate    = request.Data.StartDate,
                                    EndDate      = request.Data.EndDate,
                                    Region       = request.Data.Region,
                                    EmpStatus    = request.Data.EmpStatus,
                                    LastEmpID    = request.Data.LastEmpId,
                                    Grade        = request.Data.Grade,
                                    CreatedDate  = DateTime.Now,
                                    CreatedBy    = request.Data.Account.UserCode
                                };

                                _context.EmployeeAssignments.Add(_employeeAssignmentEntity);

                                _resultAffected = _context.SaveChanges();
                                if (_resultAffected > 0)
                                {
                                    CommandLog(true, ClinicEnums.Module.EMPLOYEE_ASSIGNMENT, Constants.Command.ADD_EMPLOYEEASSIGNMENT, request.Data.Account, _employeeAssignmentEntity);
                                }
                            }

                            oldEmployee.Status = _context.EmployeeStatus.FirstOrDefault(x => x.Code == Constants.Command.NotActiveCode).ID;
                            _context.SaveChanges();

                            //get all dependent
                            var _getAllDependant = _context.Employees.Where(x => x.ReffEmpID == oldEmployee.ID.ToString());
                            foreach (var item in _getAllDependant)
                            {
                                item.ReffEmpID = _newEmpId.ToString();
                                item.EmpID     = $"{_newEmpId}-{item.EmployeeStatu.Code}";
                                _context.SaveChanges();
                            }

                            //update employee assignment
                            var oldEmpAssignment = _context.EmployeeAssignments.SingleOrDefault(x => x.EmployeeID == _emplId);
                            if (oldEmpAssignment.ID > 0)
                            {
                                oldEmpAssignment.EndDate   = request.Data.StartDate;
                                oldEmpAssignment.EmpStatus = _context.EmployeeStatus.FirstOrDefault(x => x.Code == Constants.Command.NotActiveCode.ToString()).ID;
                                _context.SaveChanges();
                            }
                        }
                        else
                        {
                            if (request.Data.EmpTypeDesc.Trim() != Constants.Command.EmployeeRelationshipCode)
                            {
                                request.Data.EmpID = string.Format("{0}-{1}", request.Data.ReffEmpID, request.Data.EmpTypeDesc);
                            }

                            var _employeeEntity = Mapper.Map <EmployeeModel, Employee>(request.Data);

                            _employeeEntity.CreatedDate = DateTime.Now;
                            _employeeEntity.CreatedBy   = request.Data.Account.UserCode;
                            _context.Employees.Add(_employeeEntity);
                            _resultAffected = _context.SaveChanges();
                            if (_resultAffected > 0)
                            {
                                CommandLog(true, ClinicEnums.Module.MASTER_EMPLOYEE, Constants.Command.ADD_NEW_EMPLOYEE, request.Data.Account, _employeeEntity);
                            }
                            if (request.Data.EmpTypeDesc.Trim() == Constants.Command.EmployeeRelationshipCode)
                            {
                                var _employeeAssignmentEntity = new EmployeeAssignment
                                {
                                    EmployeeID   = _employeeEntity.ID,
                                    BusinessUnit = request.Data.BussinesUnit,
                                    Department   = request.Data.Department,
                                    StartDate    = request.Data.StartDate,
                                    EndDate      = request.Data.EndDate,
                                    Region       = request.Data.Region,
                                    EmpStatus    = request.Data.EmpStatus,
                                    LastEmpID    = request.Data.LastEmpId,
                                    Grade        = request.Data.Grade,
                                    CreatedDate  = DateTime.Now,
                                    CreatedBy    = request.Data.Account.UserCode
                                };

                                _context.EmployeeAssignments.Add(_employeeAssignmentEntity);

                                _resultAffected = _context.SaveChanges();
                                if (_resultAffected > 0)
                                {
                                    CommandLog(true, ClinicEnums.Module.EMPLOYEE_ASSIGNMENT, Constants.Command.ADD_EMPLOYEEASSIGNMENT, request.Data.Account, _employeeAssignmentEntity);
                                }
                            }
                        }

                        response.Message = string.Format(Messages.ObjectHasBeenAdded, "Employee", request.Data.EmpName, request.Data.EmpID);
                    }

                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();

                    response.Status  = false;
                    response.Message = Messages.GeneralError;

                    if (request.Data != null && request.Data.Id > 0)
                    {
                        ErrorLog(ClinicEnums.Module.MASTER_EMPLOYEE, Constants.Command.EDIT_EMPLOYEE, request.Data.Account, ex);
                    }
                    else
                    {
                        ErrorLog(ClinicEnums.Module.MASTER_EMPLOYEE, Constants.Command.ADD_NEW_EMPLOYEE, request.Data.Account, ex);
                    }
                }
            }

            return(response);
        }
        private EmployeeAssignment GetEmployeeAssignmentInstance()
        {
            if (_engine == null)
            {
                _engine = new EmployeeAssignment(connString);
            }

            return _engine;
        }
 public void Save(EmployeeAssignment employeeAssignment, EmployeeKRAAssignment kraAssignment, EmployeeBehavioralAssignment behavioralAssignment)
 {
 }
示例#15
0
        public ActionResult showdata([FromBody] AssignmentShowModel model)
        {
            List <Assignment> assignmentInfo = EmployeeAssignment.GetAssignmentsInfo(model.EmployeeNames, model.Year, model.Month + 1);

            return(Json(assignmentInfo));
        }
示例#16
0
 public ActionResult deletedata([FromBody] AssignmentSaveModel model)
 {
     EmployeeAssignment.DeleteAssignmentsInfo(model.Assignments);
     return(showdata(model.ShowData));
 }
        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));
        }