private JobEmployee ConvertJobEmployeeRequestToJobEmployee(JobEmployeeRequest jobEmployeeRequest, long employeeId) { return(new JobEmployee(0, _employeeService.Find(employeeId), _jobService.Find(jobEmployeeRequest.JobId), jobEmployeeRequest.Start, jobEmployeeRequest.End, jobEmployeeRequest.MonthlySalaryGross)); }
public async Task <ActionResult <JobEmployeeResponse> > Post(JobEmployeeRequest jobEmployeeRequest, long employeeId) { if (validateDataInPostRequest(jobEmployeeRequest)) { var jobsInProgress = _service.EmployeeInProgressJobs(employeeId); bool jobAlreadyExists = jobsInProgress.Select(x => x).Where(x => x.Id == jobEmployeeRequest.JobId).Any(); if (!jobAlreadyExists) { var jobEmployee = ConvertJobEmployeeRequestToJobEmployee(jobEmployeeRequest, employeeId); await _service.AddAsync(jobEmployee); return(CreatedAtAction(nameof(Get), new { employeeId = jobEmployee.Employee.Id }, ConvertJobEmployeeToJobEmployeeResponse(jobEmployee))); } else { return(new ConflictObjectResult(new { message = $"The employee with id={employeeId} has already a work in progress." })); } } else { return(BadRequest()); } }
private static bool validateDataInPostRequest(JobEmployeeRequest jobEmployeeRequest) { return(jobEmployeeRequest.JobId > 0 && jobEmployeeRequest.Start != DateTime.MinValue && jobEmployeeRequest.MonthlySalaryGross > 0); }