Пример #1
0
        public IActionResult PartiallyUpdateCourseForAuthor(Guid authorId,
                                                            Guid courseId,
                                                            JsonPatchDocument <courseForUpdateDto> patchDocument)
        {
            if (!_courseLibraryRepository.AuthorExists(authorId))
            {
                return(NotFound());
            }

            var courseForAuthorFromRepo = _courseLibraryRepository.GetCourse(authorId, courseId);

            if (courseForAuthorFromRepo == null)
            {
                var courseEntity = new courseForUpdateDto();
                patchDocument.ApplyTo(courseEntity, ModelState);

                if (!TryValidateModel(courseEntity))
                {
                    return(ValidationProblem(ModelState));
                }

                var courseToAdd = _mapper.Map <Course>(courseEntity);

                courseToAdd.Id = courseId;

                _courseLibraryRepository.AddCourse(authorId, courseToAdd);

                _courseLibraryRepository.Save();

                return(CreatedAtRoute("GetCourseForAuthor", new
                {
                    authorId = authorId,
                    courseId = courseToAdd.Id
                }, courseToAdd));
            }
            var courseToPatch = _mapper.Map <courseForUpdateDto>(courseForAuthorFromRepo);

            patchDocument.ApplyTo(courseToPatch, ModelState);

            if (!TryValidateModel(courseToPatch))
            {
                return(ValidationProblem(ModelState));
            }

            _mapper.Map(courseToPatch, courseForAuthorFromRepo);

            _courseLibraryRepository.UpdateCourse(courseForAuthorFromRepo);

            _courseLibraryRepository.Save();
            return(NoContent());
        }
Пример #2
0
        public IActionResult updateCourseForAuthor(Guid authorId,
                                                   Guid courseId,
                                                   courseForUpdateDto course)
        {
            if (!_courseLibraryRepository.AuthorExists(authorId))
            {
                return(NotFound());
                //return Ok(_mapper.Map<IEnumerable<CoursesDto>>(getCouseFromRepo));
            }

            var courseForAuthorFromRepo = _courseLibraryRepository.GetCourse(authorId, courseId);

            if (courseForAuthorFromRepo == null)
            {
                var courseEntity = _mapper.Map <Course>(course);
                courseEntity.Id = courseId;

                _courseLibraryRepository.AddCourse(authorId, courseEntity);

                _courseLibraryRepository.Save();

                var courseToReturn = _mapper.Map <CoursesDto>(courseEntity);

                return(CreatedAtRoute("GetCourseForAuthor", new
                {
                    authorId = authorId,
                    courseId = courseToReturn.Id
                }, courseToReturn));
            }

            _mapper.Map(course, courseForAuthorFromRepo);

            _courseLibraryRepository.UpdateCourse(courseForAuthorFromRepo);

            _courseLibraryRepository.Save();

            return(NoContent());
        }