public IActionResult UpdateJobPositionForCompany(Guid companyId, Guid jobPositionId , JobPositionForUpdateDto jobPositionForUpdateDto) { if (!jobRepository.CompanyExists(companyId)) { return(NotFound()); } var jobPositionFromRepo = jobRepository.GetJobPosition(companyId, jobPositionId); if (jobPositionFromRepo == null) { var jobPositionToAdd = mapper.Map <JobPosition>(jobPositionForUpdateDto); jobRepository.AddJobPositionForCompany(companyId, jobPositionToAdd); jobRepository.Save(); var returnDto = mapper.Map <JobPositionDto>(jobPositionToAdd); return(CreatedAtRoute("GetJobPositionForCompany", routeValues: new { companyId = returnDto.CompanyId, jobPositionId = returnDto.Id }, returnDto)); } mapper.Map(jobPositionForUpdateDto, jobPositionFromRepo); jobRepository.UpdateJobPosition(jobPositionFromRepo); jobRepository.Save(); return(NoContent()); }
public ActionResult UpdatePartiallyJobPosition(Guid companyId, Guid jobPositionId, JsonPatchDocument <JobPositionForUpdateDto> document ) { if (!jobRepository.CompanyExists(companyId)) { return(NotFound()); } var jobPositionFromRepo = jobRepository.GetJobPosition(companyId, jobPositionId); if (jobPositionFromRepo == null) { var jobPositionDto = new JobPositionForUpdateDto(); document.ApplyTo(jobPositionDto); if (!TryValidateModel(jobPositionDto)) { return(ValidationProblem(ModelState)); } var entity = mapper.Map <JobPosition>(jobPositionDto); entity.Id = jobPositionId; jobRepository.AddJobPositionForCompany(companyId, entity); jobRepository.Save(); var dtoToReturn = mapper.Map <JobPositionDto>(entity); return(CreatedAtRoute("GetJobPositionForCompany", new { companyId = companyId, jobPositionId = dtoToReturn.Id }, dtoToReturn)); } var dto = mapper.Map <JobPositionForUpdateDto>(jobPositionFromRepo); document.ApplyTo(dto, ModelState); if (!TryValidateModel(dto)) { return(ValidationProblem(ModelState)); } mapper.Map(dto, jobPositionFromRepo); jobRepository.UpdateJobPosition(jobPositionFromRepo); jobRepository.Save(); return(NoContent()); }