Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. [HttpPatch("{talkId}")]
  2. public ActionResult PartiallyUpdateCourseForAuthor(int speakerId,
  3. int talkId,
  4. JsonPatchDocument<TalkUpdateDto> patchDocument)
  5. {
  6. if (!_speakerRepository.SpeakerExists(speakerId))
  7. {
  8. return NotFound();
  9. }
  10.  
  11. var talkForSpeakerFromRepo = _talkRepository.GetTalk(speakerId, talkId);
  12.  
  13. if (talkForSpeakerFromRepo == null)
  14. {
  15. var courseDto = new TalkUpdateDto();
  16. patchDocument.ApplyTo(courseDto, ModelState);
  17.  
  18. if (!TryValidateModel(courseDto))
  19. {
  20. return ValidationProblem(ModelState);
  21. }
  22.  
  23. var talkToAdd = _mapper.Map<Talk>(courseDto);
  24. talkToAdd.Id = talkId;
  25.  
  26. _talkRepository.AddTalk(speakerId, talkToAdd);
  27. _talkRepository.Save();
  28.  
  29. var courseToReturn = _mapper.Map<TalkDto>(talkToAdd);
  30.  
  31. return CreatedAtRoute("GetTalkForSpeaker",
  32. new { speakerId, talkId = courseToReturn.Id },
  33. courseToReturn);
  34. }
  35.  
  36. var talkToPatch = _mapper.Map<TalkUpdateDto>(talkForSpeakerFromRepo);
  37. // add validation
  38. // patchDocument.ApplyTo(talkToPatch, ModelState);
  39. patchDocument.ApplyTo(talkToPatch);
  40. if (!TryValidateModel(talkToPatch))
  41. {
  42. return ValidationProblem(ModelState);
  43. }
  44.  
  45. _mapper.Map(talkToPatch, talkForSpeakerFromRepo);
  46.  
  47. _talkRepository.UpdateTalk(talkForSpeakerFromRepo);
  48.  
  49. _talkRepository.Save();
  50.  
  51. return NoContent();
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement