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)); }
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)); }
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)); }
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)); }
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)); }