public async Task <IActionResult> Put(int id, [FromBody] JobUpdateDto jobUpdateDto) { if (!ModelState.IsValid) { return(BadRequest()); } var job = await _unitOfWork.Jobs.GetJobAsync(id); if (job == null) { return(NotFound()); } _unitOfWork.JobOccupations.Delete(job.Occupations); await _unitOfWork.CompleteAsync(); _mapper.Map(jobUpdateDto, job); //job.SetEditInfo("Iman"); _unitOfWork.Jobs.Edit(job); await _unitOfWork.CompleteAsync(); return(NoContent()); }
public async Task <IActionResult> PartialUpdateJobAsync( [FromRoute, SwaggerParameter("Id of the job to partially update", Required = true)] Guid jobId, [FromBody, SwaggerParameter("Json patch operations to perform", Required = true)] JsonPatchDocument <JobUpdateDto> jobToPartialUpdate, [FromHeader(Name = "accept"), SwaggerParameter("Request Hateoas")] string mediaType) { if (jobToPartialUpdate == null) { return(BadRequest()); } var foundJob = await _jobRepository.GetFirstByConditionAsync(j => j.Id == jobId); if (foundJob == null) { var jobToCreate = new JobUpdateDto(); // check if necessary jobToPartialUpdate.ApplyTo(jobToCreate, ModelState); var jobToAdd = Mapper.Map <Job>(jobToCreate); jobToAdd.Id = Guid.NewGuid(); _jobRepository.Create(jobToAdd); if (!await _jobRepository.SaveChangesAsync()) { throw new Exception("Failed to partially update job"); } var jobToReturn = await _jobRepository.GetFirstByConditionAsync(j => j.Id == jobToAdd.Id); if (mediaType == "application/vnd.AO.json+hateoas") { var shapedJob = _controllerHelper.ShapeAndAddLinkToObject(jobToReturn, "Job", null); return(CreatedAtRoute("GetJob", new { jobId = jobToReturn.Id }, shapedJob)); } return(CreatedAtRoute("GetJob", new { jobId = jobToReturn.Id }, jobToReturn)); } // why map back and fourth? var jobToPatch = Mapper.Map <JobUpdateDto>(foundJob); // check if necessary jobToPartialUpdate.ApplyTo(jobToPatch, ModelState); // why map back and fourth? Mapper.Map(jobToPatch, foundJob); _jobRepository.Update(foundJob); if (!await _jobRepository.SaveChangesAsync()) { throw new Exception("Failed to partially update job"); } return(NoContent()); }
public async Task <IActionResult> Update(Guid id, [FromBody] JobUpdateDto dto) { var job = await _applicationDbContext.Jobs.FindAsync(id); if (job == null) { return(NotFound()); } dto.Update(job); await _applicationDbContext.SaveChangesAsync(); return(NoContent()); }
public ActionResult UpdateJob(int id, JobUpdateDto jobUpdateDto) { Job jobModelFromRepo = _repository.GetJobById(id); if (jobModelFromRepo == null) { return(NotFound()); } _mapper.Map(jobUpdateDto, jobModelFromRepo); _repository.UpdateJob(jobModelFromRepo); _repository.SaveChanges(); return(NoContent()); }
public async Task <ActionResult> UpdateJob(JobUpdateDto jobUpdateDto, int jobId) { var job = await _jobRepository.GetJobAsync(jobId); _mapper.Map(jobUpdateDto, job); _jobRepository.Update(job); if (await _jobRepository.SaveAllAsync()) { return(NoContent()); } return(BadRequest("Failed to update job profile.")); }
public void Update_Delayed() { var dto = new JobUpdateDto() { Status = JobStatus.Delayed, DelayReason = "Other" }; var job = new Job() { Id = Guid.Parse("D0E96FF7-BB53-472B-A42C-000112B8FCA1"), ContractorID = null, Name = "Job22_25_1", Floor = 22, Room = 25, StatusNum = JobStatus.NotStarted, RJobID = null, RoomTypeId = Guid.Parse("86F23884-1971-4BDF-90DB-629F887ED76A") }; dto.Update(job); Assert.Equal(dto.Status, job.StatusNum); Assert.Equal(dto.DelayReason, job.DelayReason); }
public IActionResult UpdateJob(int JobId, [FromBody] JobUpdateDto JobDto) { if (JobDto == null || JobId != JobDto.Id) { return(BadRequest(ModelState)); } var JobObj = _mapper.Map <Job>(JobDto); if (!_jsRepo.UpdateJob(JobObj)) { ModelState.AddModelError("", $"Something went wrong when updating the record {JobObj.Name}"); return(StatusCode(500, ModelState)); } return(NoContent()); }
public IActionResult Update(int id, JobUpdateDto model) { TempData["Active"] = TempDataInfo.Job; var job = _jobService.GetById(id); var list = _departmentService.List(); if (ModelState.IsValid) { job.Name = model.Name; job.DepartmentId = model.DepartmentId; job.CreationDate = model.CreationDate; job.Description = model.Description; _jobService.Update(job); return(RedirectToAction("List")); } ViewBag.Departments = new SelectList(list, "DepartmentId", "DepartmentName", model.DepartmentId); return(View(model)); }
public async Task Update_Invalid_ReturnsNotFoundResult() { var serviceProvider = new ServiceCollection().AddLogging().BuildServiceProvider(); var factory = serviceProvider.GetService <ILoggerFactory>(); var logger = factory.CreateLogger <JobController>(); var options = new DbContextOptionsBuilder <ApplicationDbContext>().UseInMemoryDatabase("Update_Invalid_ReturnsNotFoundResult").Options; await SeedDatabase(options); using (var context = new ApplicationDbContext(options)) { var controller = new JobController(context, logger); var dto = new JobUpdateDto() { Status = JobStatus.NotStarted }; var result = await controller.Update(Guid.Parse("EC572A33-1D58-4671-870E-BC4756F79EE4"), dto); Assert.IsType <NotFoundResult>(result); } }
public async Task Update_Valid_ReturnsNoContentResult() { var serviceProvider = new ServiceCollection().AddLogging().BuildServiceProvider(); var factory = serviceProvider.GetService <ILoggerFactory>(); var logger = factory.CreateLogger <JobController>(); var options = new DbContextOptionsBuilder <ApplicationDbContext>().UseInMemoryDatabase("Update_NotStarted_ReturnsNoContentResult").Options; await SeedDatabase(options); using (var context = new ApplicationDbContext(options)) { var controller = new JobController(context, logger); var dto = new JobUpdateDto() { Status = JobStatus.NotStarted }; var result = await controller.Update(Guid.Parse("A5F29486-04F2-439A-979D-0A3F9E323B92"), dto); Assert.IsType <NoContentResult>(result); } }
public async Task <IActionResult> UpdateJobAsync( [FromRoute, SwaggerParameter("Id of the job to update", Required = true)] Guid jobId, [FromBody, SwaggerParameter("Object with updates to job", Required = true)] JobUpdateDto jobToUpdate, [FromHeader(Name = "accept"), SwaggerParameter("Request Hateoas")] string mediaType) { var foundJob = await _jobRepository.GetFirstByConditionAsync(j => j.Id == jobId); if (foundJob == null) { var jobToAdd = Mapper.Map <Job>(jobToUpdate); jobToAdd.Id = Guid.NewGuid(); _jobRepository.Create(jobToAdd); await _jobRepository.SaveChangesAsync(); var jobToReturn = await _jobRepository.GetFirstByConditionAsync(j => j.Id == jobToAdd.Id); if (mediaType == "application/vnd.AO.json+hateoas") { var shapedJob = _controllerHelper.ShapeAndAddLinkToObject(jobToReturn, "Job", null); return(CreatedAtRoute("GetJob", new { jobId = jobToReturn.Id }, shapedJob)); } return(CreatedAtRoute("GetJob", new { jobId = jobToReturn.Id }, jobToReturn)); } Mapper.Map(jobToUpdate, foundJob); _jobRepository.Update(foundJob); if (!await _jobRepository.SaveChangesAsync()) { throw new Exception("Failed to update job"); } return(NoContent()); }
public ActionResult PartialJobUpdate(int id, JsonPatchDocument <JobUpdateDto> patchDoc) { Job jobModelFromRepo = _repository.GetJobById(id); if (jobModelFromRepo == null) { return(NotFound()); } JobUpdateDto jobToPatch = _mapper.Map <JobUpdateDto>(jobModelFromRepo); patchDoc.ApplyTo(jobToPatch, ModelState); if (!TryValidateModel(jobToPatch)) { return(ValidationProblem(ModelState)); } _mapper.Map(jobToPatch, jobModelFromRepo); _repository.UpdateJob(jobModelFromRepo); _repository.SaveChanges(); return(NoContent()); }