public ActionResult <CourseDto> CreateCourseForAuthor( [FromRoute] Guid authorId, [FromBody] CreateCourseDto courseDto ) { if (!AuthorRepository.Exists(authorId)) { return(NotFound()); } if (courseDto == null) { return(BadRequest()); } var course = CourseMapper.ToCourse(courseDto, authorId); CourseRepository.Create(course); _unitOfWork.Commit(); return(CreatedAtRoute( "GetCourseForAuthor", new { authorId, id = course.Id }, CourseMapper.ToCourseDto(course) )); }
public ActionResult PartiallyUpdateCourseForAuthor(Guid authorId, Guid id, JsonPatchDocument <UpdateCourseDto> patchDocument) { if (!AuthorRepository.Exists(authorId)) { return(NotFound()); } var course = CourseRepository.GetAuthorCourse(authorId, id); if (course == null) { var courseDto = new UpdateCourseDto(); patchDocument.ApplyTo(courseDto, ModelState); if (!TryValidateModel(courseDto)) { return(ValidationProblem(ModelState)); } var courseToAdd = CourseMapper.ToCourse(courseDto, authorId); courseToAdd.Id = id; CourseRepository.Create(courseToAdd); _unitOfWork.Commit(); return(CreatedAtRoute( "GetCourseForAuthor", new { authorId, id = courseToAdd.Id }, CourseMapper.ToCourseDto(courseToAdd) )); } var courseToPatch = new UpdateCourseDto() { Description = course.Description, Title = course.Title, }; patchDocument.ApplyTo(courseToPatch, ModelState); if (!TryValidateModel(courseToPatch)) { return(ValidationProblem(ModelState)); } CourseMapper.ToCourse(courseToPatch, authorId, course); CourseRepository.Update(course); _unitOfWork.Commit(); return(NoContent()); }
public IActionResult UpdateCourseForAuthor( [FromRoute] Guid authorId, [FromRoute] Guid id, [FromBody] UpdateCourseDto courseDto ) { if (!AuthorRepository.Exists(authorId)) { return(NotFound()); } if (courseDto == null) { return(BadRequest()); } var course = CourseRepository.GetAuthorCourse(authorId, id); if (course == null) { var courseToAdd = CourseMapper.ToCourse(courseDto, authorId); courseToAdd.Id = id; CourseRepository.Create(courseToAdd); return(CreatedAtRoute( "GetCourseForAuthor", new { authorId, id = courseToAdd.Id }, CourseMapper.ToCourseDto(courseToAdd) )); } CourseMapper.ToCourse(courseDto, authorId, course); CourseRepository.Update(course); _unitOfWork.Commit(); return(NoContent()); }