示例#1
0
        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());
        }