Example #1
0
        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());
        }
Example #2
0
        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());
        }