public async Task <IActionResult> PutWorkPackage(string id, WorkPackageViewModel wpViewModel) { //Get Project and ParentWpIds int?parentWpId = null; if (wpViewModel.ParentWorkPackageCode != null) { parentWpId = _workPackageRepository.GetIdByCode(wpViewModel.ParentWorkPackageCode); } int projectId = _projectRepository.GetIdByCode(wpViewModel.ProjectCode); int wpId = wpViewModel.WorkPackageId; WorkPackage wp = new WorkPackage(wpViewModel, parentWpId, projectId); wp.WorkPackageId = wpId; //id is needed for PUT await _workPackageRepository.Update(wp); //Get and delete existing assignments IEnumerable <EmployeeWorkPackageAssignment> empWpList = await _empWorkPackageAssignmentRepository.GetAll(); foreach (EmployeeNameViewModel emp in wpViewModel.Employees) { var tempList = empWpList.Where(x => x.EmployeeId == emp.EmployeeId); foreach (var empWp in tempList) { await _empWorkPackageAssignmentRepository.Delete(empWp); } } await _empWorkPackageAssignmentRepository.Delete(empWpList.FirstOrDefault(x => x.EmployeeId == wpViewModel.ResponsibleEngineer.EmployeeId)); //add updated assignments back foreach (EmployeeNameViewModel emp in wpViewModel.Employees) { EmployeeWorkPackageAssignment empWpAss = new EmployeeWorkPackageAssignment(emp.EmployeeId, wpId); await _empWorkPackageAssignmentRepository.Add(empWpAss); } //add updated RE to db EmployeeWorkPackageAssignment re = new EmployeeWorkPackageAssignment(wpViewModel.ResponsibleEngineer.EmployeeId, wpId); await _empWorkPackageAssignmentRepository.Add(re); //update pmViewModels foreach (PmPlanningViewModel pmViewModel in wpViewModel.PmPlannings) { WorkPackageLabourGradeAssignment wplga = new WorkPackageLabourGradeAssignment(wpId, pmViewModel); await _workPackageLabourGradeRepository.Update(wplga); } return(Ok(200)); }
public async Task <IActionResult> GetReBudgetColumn(string wpCode, int labourGradeId) { int id = _workPackageRepository.GetIdByCode(wpCode); WorkPackageLabourGradeAssignment resultWPLabourGrAssgn = new WorkPackageLabourGradeAssignment(); foreach (WorkPackageLabourGradeAssignment item in await _workPackageLabourGradeAssignmentRepository.GetAll()) { if (item.WorkPackageId == id && item.LabourGradeId == labourGradeId) { resultWPLabourGrAssgn = item; } } double reBudgetValue = (double)resultWPLabourGrAssgn.reBudget; ReBudgetColumnViewModel reBudgetColViewModel = new ReBudgetColumnViewModel(reBudgetValue); return(Ok(reBudgetColViewModel)); }
public async Task <ActionResult <WorkPackageViewModel> > PostWorkPackage(WorkPackageViewModel wpViewModel) { //Get Project and ParentWpIds int parentWpId = _workPackageRepository.GetIdByCode(wpViewModel.ParentWorkPackageCode); int projectId = _projectRepository.GetIdByCode(wpViewModel.ProjectCode); WorkPackage wp = new WorkPackage(wpViewModel, parentWpId, projectId); await _workPackageRepository.Add(wp); //Get id of the wp just added int wpId = _workPackageRepository.GetIdByCode(wpViewModel.WorkPackageCode); foreach (PmPlanningViewModel pmViewModel in wpViewModel.PmPlannings) { WorkPackageLabourGradeAssignment wplga = new WorkPackageLabourGradeAssignment(wpId, pmViewModel); await _workPackageLabourGradeRepository.Add(wplga); } return(Ok(wpViewModel)); }
public async Task <IActionResult> PutWorkPackage(int id, WorkPackageViewModel wpViewModel) { //Get Project and ParentWpIds int parentWpId = _workPackageRepository.GetIdByCode(wpViewModel.ParentWorkPackageCode); int projectId = _projectRepository.GetIdByCode(wpViewModel.ProjectCode); int wpId = wpViewModel.WorkPackageId; WorkPackage wp = new WorkPackage(wpViewModel, parentWpId, projectId); wp.WorkPackageId = wpId; //id is needed for PUT await _workPackageRepository.Update(wp); foreach (PmPlanningViewModel pmViewModel in wpViewModel.PmPlannings) { WorkPackageLabourGradeAssignment wplga = new WorkPackageLabourGradeAssignment(wpId, pmViewModel); await _workPackageLabourGradeRepository.Update(wplga); } return(Ok(200)); }
public async Task <ActionResult <WorkPackageViewModel> > PostWorkPackage(WorkPackageViewModel wpViewModel) { //Get Project and ParentWpIds int?parentWpId = null; if (wpViewModel.ParentWorkPackageCode != null) { parentWpId = _workPackageRepository.GetIdByCode(wpViewModel.ParentWorkPackageCode); } int projectId = _projectRepository.GetIdByCode(wpViewModel.ProjectCode); WorkPackage wp = new WorkPackage(wpViewModel, parentWpId, projectId); await _workPackageRepository.Add(wp); //Get id of the wp just added int wpId = _workPackageRepository.GetIdByCode(wpViewModel.WorkPackageCode); //add pmViewModels foreach (PmPlanningViewModel pmViewModel in wpViewModel.PmPlannings) { WorkPackageLabourGradeAssignment wplga = new WorkPackageLabourGradeAssignment(wpId, pmViewModel); await _workPackageLabourGradeRepository.Add(wplga); } foreach (EmployeeNameViewModel emp in wpViewModel.Employees) { EmployeeWorkPackageAssignment empWpAss = new EmployeeWorkPackageAssignment(emp.EmployeeId, wpId); await _empWorkPackageAssignmentRepository.Add(empWpAss); } //add RE to db EmployeeWorkPackageAssignment re = new EmployeeWorkPackageAssignment(wpViewModel.ResponsibleEngineer.EmployeeId, wpId); await _empWorkPackageAssignmentRepository.Add(re); return(Ok(wpViewModel)); }
public PmPlanningViewModel(WorkPackageLabourGradeAssignment param) { this.LabourGradeId = param.LabourGradeId; this.PmEAC = param.pmEAC; this.ReBudget = param.reBudget; }