コード例 #1
0
        public async Task <IActionResult> GetProjectsByEmployeeId(int id)
        {
            var            empProjectAssignmentList = (await _employeeProjectAssignmentRepository.GetAll()).Where(x => x.EmployeeId == id);
            List <Project> projList = new List <Project>();

            //int empCode = (await _employeeRepository.Get(id)).EmployeeCode;
            foreach (EmployeeProjectAssignment item in empProjectAssignmentList)
            {
                Project projFull = await this.GetFullProjectDetails(await _projectRepository.Get(item.ProjectId));

                projList.Add(projFull);
            }

            List <EmployeeProjectViewModel> empProjViewModels = new List <EmployeeProjectViewModel>();

            foreach (Project item in projList)
            {
                int      projId   = item.ProjectId;
                string   projName = item.ProjectName;
                int      manId    = item.ProjectManagerId;
                DateTime sDate    = item.StartDate;
                DateTime eDate    = item.EndDate;
                bool     isClosed = item.IsClosed;

                EmployeeNameViewModel empNameViewModel = new EmployeeNameViewModel(await _employeeRepository.Get(manId));

                EmployeeProjectViewModel empProjViewModel = new EmployeeProjectViewModel(projId,
                                                                                         projName, empNameViewModel, sDate, eDate, isClosed);

                empProjViewModels.Add(empProjViewModel);
            }


            return(Ok(empProjViewModels));
        }
コード例 #2
0
        public async Task <IActionResult> GetAllProjectReportsByProjectId(int id)
        {
            List <ProjectReportViewModel> prViewList = new List <ProjectReportViewModel>();
            IEnumerable <ProjectReport>   allPRList  = await _projectReportRepository.GetAll();

            IEnumerable <ProjectReport> prList = allPRList.Where(x => x.ProjectId == id);

            foreach (ProjectReport pr in prList)
            {
                IEnumerable <WorkPackageReportSnapshot> allWPRS = await _workPackageReportSnapshotRepository.GetAll();

                IEnumerable <WorkPackageReportSnapshot> lowWPRS = allWPRS.Where(x => x.ProjectReportId == pr.ProjectReportId && !x.IsHighWorkPackage); //lowWorkPackage

                IEnumerable <WorkPackageReportSnapshot> highWPRS = allWPRS.Where(x => x.ProjectReportId == pr.ProjectReportId && x.IsHighWorkPackage); //highWP

                IEnumerable <EmployeeProjectAssignment> allEmpProjectAssignments = await _employeeProjectAssignmentRepository.GetAll();

                IEnumerable <EmployeeProjectAssignment> projectAssignments = allEmpProjectAssignments.Where(x => x.ProjectId == pr.ProjectId);

                IEnumerable <Employee> employees = await _employeeRepository.GetAll();

                List <EmployeeNameViewModel> engineers = new List <EmployeeNameViewModel>();

                EmployeeNameViewModel pm = null;

                foreach (EmployeeProjectAssignment e in projectAssignments)
                {
                    if (e.IsProjectManager)
                    {
                        pm = new EmployeeNameViewModel(employees.Where(x => x.EmployeeId == e.EmployeeId).FirstOrDefault());
                    }
                    else
                    {
                        engineers.Add(new EmployeeNameViewModel(employees.Where(x => x.EmployeeId == e.EmployeeId).FirstOrDefault()));
                    }
                }

                prViewList.Add(new ProjectReportViewModel(pr, pm, engineers, lowWPRS.ToList(), highWPRS.ToList()));
            }



            return(Ok(prViewList));
        }
コード例 #3
0
        public async Task <ActionResult <Project> > GetProject(int id)
        {
            Project proj = await this.GetFullProjectDetails(await _projectRepository.Get(id));

            List <EmployeeNameViewModel> employeeNameViewModels = new List <EmployeeNameViewModel>();

            foreach (EmployeeProjectAssignment item in proj.EmployeeProjectAssignments)
            {
                Employee emp = await _employeeRepository.Get(item.EmployeeId);

                EmployeeNameViewModel empNameViewModel = new EmployeeNameViewModel(emp);

                employeeNameViewModels.Add(empNameViewModel);
            }


            EmployeeNameViewModel projManagerNameViewModel = new EmployeeNameViewModel(await _employeeRepository.Get(proj.ProjectManagerId));

            ProjectViewModel projViewModel = new ProjectViewModel(proj.ProjectId, proj.ProjectName,
                                                                  proj.ProjectCode, proj.Budget, proj.ProjectDescription, proj.IsClosed, proj.StartDate,
                                                                  proj.EndDate, projManagerNameViewModel, employeeNameViewModels);

            return(Ok(projViewModel));
        }
コード例 #4
0
        public async Task <ActionResult <IEnumerable <Project> > > GetOpenProjects()
        {
            List <Project> projList = new List <Project>();

            foreach (Project item in await _projectRepository.GetAll())
            {
                await this.GetFullProjectDetails(item);

                projList.Add(item);
            }

            List <EmployeeProjectViewModel> empProjViewModels = new List <EmployeeProjectViewModel>();

            foreach (Project item in projList)
            {
                if (item.IsClosed == false)
                {
                    int      projId   = item.ProjectId;
                    string   projName = item.ProjectName;
                    int      manId    = item.ProjectManagerId;
                    DateTime sDate    = item.StartDate;
                    DateTime eDate    = item.EndDate;
                    bool     isClosed = item.IsClosed;

                    EmployeeNameViewModel empNameViewModel = new EmployeeNameViewModel(await _employeeRepository.Get(manId));

                    EmployeeProjectViewModel empProjViewModel = new EmployeeProjectViewModel(projId,
                                                                                             projName, empNameViewModel, sDate, eDate, isClosed);

                    empProjViewModels.Add(empProjViewModel);
                }
            }


            return(Ok(empProjViewModels));
        }
コード例 #5
0
        public async Task <ActionResult <WorkPackage> > GetWorkPackage(string code)
        {
            //Get WpId from param that is WpCode
            int id = _workPackageRepository.GetIdByCode(code);

            //Get WP
            WorkPackage wp = await _workPackageRepository.Get(id);

            //Get ParentWPCode
            int?        parentWpId   = wp.ParentWorkPackageId;
            string      parentWpCode = null;
            WorkPackage parentWp;

            if (parentWpId != null)
            {
                parentWp = await _workPackageRepository.Get((int)parentWpId);

                parentWpCode = parentWp.WorkPackageCode;
            }

            //GetProject
            Project proj = await _projectRepository.Get(wp.ProjectId);

            //Filter EmployeeWokPackageAssignments
            IEnumerable <EmployeeWorkPackageAssignment> empWpAssignments = await _empWorkPackageAssignmentRepository.GetAll();

            empWpAssignments = empWpAssignments.Where(x => x.WorkPackageId == id);

            //Get employees list and Responsible Engineer
            IList <EmployeeNameViewModel> employees           = new List <EmployeeNameViewModel>();
            EmployeeNameViewModel         responsibleEngineer = null;

            foreach (EmployeeWorkPackageAssignment empWpAssignment in empWpAssignments)
            {
                Employee emp = await _employeeRepository.Get(empWpAssignment.EmployeeId);

                if (wp.ResponsibleEngineerId != empWpAssignment.EmployeeId)
                {
                    employees.Add(new EmployeeNameViewModel(emp));
                }
                else
                {
                    responsibleEngineer = new EmployeeNameViewModel(emp);
                }
            }

            //Filter WorkPackageLabourGradeAssignments
            IEnumerable <WorkPackageLabourGradeAssignment> wpLabourGradeAssignments =
                await _workPackageLabourGradeRepository.GetAll();

            wpLabourGradeAssignments = wpLabourGradeAssignments.Where(x => x.WorkPackageId == id);

            //Get PmPlannings
            IList <PmPlanningViewModel> pmPlannings = new List <PmPlanningViewModel>();

            foreach (WorkPackageLabourGradeAssignment item in wpLabourGradeAssignments)
            {
                pmPlannings.Add(new PmPlanningViewModel(item));
            }

            //Create the viewmodel
            WorkPackageViewModel wpViewModel = new WorkPackageViewModel(wp, parentWpCode, proj, responsibleEngineer, employees, pmPlannings);

            // return Ok(await _workPackageRepository.Get(id));  //this is just plain database table object
            return(Ok(wpViewModel));
        }