public async Task <ActionResult <CourseResource> > UpdateCourse(int id, [FromBody] SaveCourseResource saveCourseResource)
        {
            var validator        = new SaveCourseResourceValidator();
            var validationResult = await validator.ValidateAsync(saveCourseResource);

            var requestIsInvalid = id <= 0 || !validationResult.IsValid;

            if (requestIsInvalid)
            {
                _logger.LogError(DateTime.Now + "\nUpdating course failed, validation isn't valid\n" + validationResult.Errors.ToString());
                return(BadRequest(validationResult.Errors));
            }

            var courseToBeUpdate = await _courseService.GetCourseWithLecturerById(id);

            var course = _mapper.Map <SaveCourseResource, Course>(saveCourseResource);

            course.Id = id;

            await _courseService.UpdateCourse(course);

            var updatedCourse = await _courseService.GetCourseWithLecturerById(id);

            var updatedCourseResource = _mapper.Map <Course, SaveCourseResource>(updatedCourse);

            return(Ok(updatedCourseResource));
        }
        public async Task <ActionResult <CourseResource> > CreateCourse([FromBody] SaveCourseResource saveCourseResource)
        {
            var validator        = new SaveCourseResourceValidator();
            var validationResult = await validator.ValidateAsync(saveCourseResource);

            if (!validationResult.IsValid)
            {
                _logger.LogError(DateTime.Now + "\nCreating course failed, validation isn't valid\n" + validationResult.Errors);
                return(BadRequest(validationResult.Errors));
            }

            var courseToCreate = _mapper.Map <SaveCourseResource, Course>(saveCourseResource);

            var result = await _courseService.CreateCourse(courseToCreate);

            var createdCourse = _mapper.Map <Course, CourseResource>(result);

            return(Ok(createdCourse));
        }