Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [HttpPatch("{talkId}")]
- public ActionResult PartiallyUpdateCourseForAuthor(int speakerId,
- int talkId,
- JsonPatchDocument<TalkUpdateDto> patchDocument)
- {
- if (!_speakerRepository.SpeakerExists(speakerId))
- {
- return NotFound();
- }
- var talkForSpeakerFromRepo = _talkRepository.GetTalk(speakerId, talkId);
- if (talkForSpeakerFromRepo == null)
- {
- var courseDto = new TalkUpdateDto();
- patchDocument.ApplyTo(courseDto, ModelState);
- if (!TryValidateModel(courseDto))
- {
- return ValidationProblem(ModelState);
- }
- var talkToAdd = _mapper.Map<Talk>(courseDto);
- talkToAdd.Id = talkId;
- _talkRepository.AddTalk(speakerId, talkToAdd);
- _talkRepository.Save();
- var courseToReturn = _mapper.Map<TalkDto>(talkToAdd);
- return CreatedAtRoute("GetTalkForSpeaker",
- new { speakerId, talkId = courseToReturn.Id },
- courseToReturn);
- }
- var talkToPatch = _mapper.Map<TalkUpdateDto>(talkForSpeakerFromRepo);
- // add validation
- // patchDocument.ApplyTo(talkToPatch, ModelState);
- patchDocument.ApplyTo(talkToPatch);
- if (!TryValidateModel(talkToPatch))
- {
- return ValidationProblem(ModelState);
- }
- _mapper.Map(talkToPatch, talkForSpeakerFromRepo);
- _talkRepository.UpdateTalk(talkForSpeakerFromRepo);
- _talkRepository.Save();
- return NoContent();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement