public async Task <ActionResult <CourseDto> > PartiallyEditCourse(int courseId,
                                                                          JsonPatchDocument <CourseForEditDto> patchDocument)
        {
            var courseFromRepo = await _coursesRepo.GetCourseByIdAsync(courseId);

            if (courseFromRepo == null)
            {
                return(NotFound());
            }
            //create coursetoEditDto to patch apples to apples
            var courseToPatch = new CourseForEditDto();

            patchDocument.ApplyTo(courseToPatch, ModelState);
            if (!TryValidateModel(courseToPatch))
            {
                return(ValidationProblem(ModelState));
            }

            _mapper.Map(courseToPatch, courseFromRepo);

            _coursesRepo.UpdateCourse(courseFromRepo);
            await _coursesRepo.SaveAsync();

            return(Ok(_mapper.Map <CourseDto>(courseFromRepo)));
        }
        public async Task <ActionResult <CourseDto> > EditCourse([FromRoute] int courseId,
                                                                 [FromBody] CourseForEditDto course)
        {
            var courseToEdit = await _coursesRepo.GetCourseByIdAsync(courseId);

            if (courseToEdit == null)
            {
                return(NotFound());
            }
            _mapper.Map(course, courseToEdit);
            _coursesRepo.UpdateCourse(courseToEdit);
            await _coursesRepo.SaveAsync();

            return(Ok(_mapper.Map <CourseDto>(courseToEdit)));
        }