示例#1
0
        public async Task <IActionResult> CreateLecture(int?sectionId, [FromBody] LectureCreateRequestDto request)
        {
            try
            {
                if (sectionId == null)
                {
                    return(BadRequest("please indicate a sectionId"));
                }
                var result = await _lectureServices.CreateLectureAsync(sectionId.Value, request);

                if (result == null)
                {
                    return(NotFound("no section found"));
                }
                return(Ok(result));
            }
            catch (NotFoundException error)
            {
                return(BadRequest(error.Message));
            }
            catch (CourseValidateException error)
            {
                return(BadRequest(error.Message));
            }
            catch (Exception ex)
            {
                _logger.LogCritical($"CreateLecture() Error: {ex}");
                return(StatusCode(500, "Internal Server Error"));
            }
        }
示例#2
0
        public async Task <LectureDto> CreateLectureAsync(int sectionId, LectureCreateRequestDto request)
        {
            var user = await GetCurrentUser();

            if (user == null)
            {
                throw new NotFoundException("user not found");
            }

            var section = await _sectionRepository.GetSectionAsync(sectionId);

            if (section == null)
            {
                throw new NotFoundException("section not found");
            }

            var lecture = section.AddLecture(user, request.Title, request.IsAllowPreview);

            await _sectionRepository.SaveAsync();

            return(Mapper.Map <LectureDto>(lecture));
        }