public IActionResult PartiallyUpdateDirector(Guid directorId, JsonPatchDocument <DirectorForUpdateDto> patchDocument) { var directorFromDb = _unitOfWork.Directors.GetDirector(directorId); if (directorFromDb == null) { var directorDto = new DirectorForUpdateDto(); patchDocument.ApplyTo(directorDto, ModelState); if (!TryValidateModel(directorDto)) { return(ValidationProblem(ModelState)); } return(UpsertDirector(directorId, directorDto)); } var directorToPatch = _mapper.Map <DirectorForUpdateDto>(directorFromDb); patchDocument.ApplyTo(directorToPatch, ModelState); if (!TryValidateModel(directorToPatch)) { return(ValidationProblem(ModelState)); } _mapper.Map(directorToPatch, directorFromDb); SaveDirectorInDB(directorFromDb); return(NoContent()); }
public IActionResult UpdateDirector(Guid directorId, DirectorForUpdateDto directorToBeUpdated) { var directorFromDb = _unitOfWork.Directors.GetDirector(directorId); if (directorFromDb == null) { return(UpsertDirector(directorId, directorToBeUpdated)); } _mapper.Map(directorToBeUpdated, directorFromDb); SaveDirectorInDB(directorFromDb); return(NoContent()); }
private IActionResult UpsertDirector(Guid directorId, DirectorForUpdateDto directorToBeUpdated) { var directorToAdd = _mapper.Map <Director>(directorToBeUpdated); if (_unitOfWork.Directors.DirectorExists(directorToAdd)) { return(Conflict(new { message = $"This Director already exists in the database!" })); } directorToAdd.Guid = directorId; SaveDirectorInDB(directorToAdd); var directorToReturn = _mapper.Map <DirectorDto>(directorToAdd); return(CreatedAtRoute("GetDirector", new { directorId = directorToReturn.Id }, directorToReturn)); }