public IResult Add(ProjectWorker projectWorkers) { var getWorkerDepartments = _workerDepartmentTypeService.GetByWorkerID(projectWorkers.WorkerID).Data; var getDepartmentTypeInSection = _projectSectionDepartmentService.GetByID(projectWorkers.ProjectSectionDepartmentID).Data; var getProjectSection = _projectSectionService.GetBySectionID(getDepartmentTypeInSection.ProjectSectionID).Data; var getProject = _projectService.GetByID(getProjectSection.ProjectID).Data; IResult result = BusinessRules.Run(CheckProjectWorkerCapacityIsFull(getProject), CheckIfWorkerHasDepartment(getWorkerDepartments, getDepartmentTypeInSection)); if (result != null) { return(result); } projectWorkers.Status = true; _projectWorkerDal.Add(projectWorkers); getProject.ActiveWorkerCount += 1; var getProjectMapper = _mapper.Map <Project>(getProject); _projectService.Update(getProjectMapper); getProjectSection.WorkerCount += 1; _projectSectionService.Update(getProjectSection); return(new SuccessResult(Messages.ProjectWorkerAdded)); }
public IResult Add(ProjectWorkerWorkingTime projectWorkerWorkingTime) { _projectWorkerWorkingTimeDal.Add(projectWorkerWorkingTime); var getProjectWorker = _projectWorkerService.GetByID(projectWorkerWorkingTime.ProjectWorkerID).Data; var getProjectSectionDepartment = _projectSectionDepartmentService.GetByID(getProjectWorker.ProjectSectionDepartmentID).Data; var getProjectSection = _projectSectionService.GetBySectionID(getProjectSectionDepartment.ProjectSectionID).Data; var getProject = _projectService.GetByID(getProjectSection.ProjectID).Data; var getWorker = _workerService.GetByID(getProjectWorker.WorkerID).Data; var getWorkerSalary = _salaryService.GetByWorkerID(getWorker.WorkerID).Data; decimal getWorkTime = Convert.ToDecimal(projectWorkerWorkingTime.DailyFinishHour) - Convert.ToDecimal(projectWorkerWorkingTime.DailyStartHour); getWorkTime.ToString().Insert(1, "."); getProject.RemainingProjectTime -= getWorkTime; getProjectSection.RemainingSectionTime -= getWorkTime; var getProjectMapper = _mapper.Map <Project>(getProject); _projectService.Update(getProjectMapper); _projectSectionService.Update(getProjectSection); var WorkerEarnPrice = getWorkTime * getWorker.HourSalary; var getSalaryMapper = _mapper.Map <Salary>(getWorkerSalary); getSalaryMapper.SalaryAmount += WorkerEarnPrice; if ((DateTime.Now - Convert.ToDateTime(getSalaryMapper.SalaryDate)).Days > 30) { Salary salary = new Salary { UserID = getSalaryMapper.UserID, WorkerID = getSalaryMapper.WorkerID, SalaryAmount = WorkerEarnPrice }; _salaryService.Add(salary); } else { _salaryService.Update(getSalaryMapper); } return(new SuccessResult(Messages.AddedProjectWorkerWorkingTime)); }
public ActionResult Update(ProjectSection projectSection) { var result = _projectSectionService.Update(projectSection); if (result.Success) { return(Ok(result)); } return(BadRequest(result)); }