public ActionResult PatchSubject(string subjectId, [FromBody] JsonPatchDocument <SubjectToUpdate> patchDocument) { if (patchDocument == null) { return(BadRequest()); } var subjectFromRepo = _repository.GetSubject(subjectId); if (subjectFromRepo == null) { return(NotFound()); } var subjectToPatch = _mapper.Map <SubjectToUpdate>(subjectFromRepo); patchDocument.ApplyTo(subjectToPatch, ModelState); if (!TryValidateModel(subjectToPatch)) { return(ValidationProblem()); } _mapper.Map(subjectToPatch, subjectFromRepo); _repository.UpdateSubject(subjectFromRepo.Id, subjectFromRepo); _repository.Save(); return(NoContent()); }