コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
 public PmPlanningViewModel(WorkPackageLabourGradeAssignment param)
 {
     this.LabourGradeId = param.LabourGradeId;
     this.PmEAC         = param.pmEAC;
     this.ReBudget      = param.reBudget;
 }