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")); } }
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)); }