public IActionResult UpdateLesson(int courseId, int id, [FromBody] UpdateLessonDto lesson) { if (!ModelState.IsValid) { return(BadRequest()); } var course = _courseRepository.Get(courseId, true); if (course == null) { return(NotFound()); } var existedLesson = course.Lessons.FirstOrDefault(c => c.Id == id); if (existedLesson == null) { return(NotFound()); } _mapper.Map(lesson, existedLesson); _courseRepository.Save(); return(NoContent()); }
public async Task <ActionResult> PutLesson(long id, UpdateLessonDto lessonDto) { var updatedLesson = await _lessonService.UpdateLessonAsync(id, lessonDto); if (updatedLesson != null) { return(Ok(updatedLesson)); } return(StatusCode(409, "Cannot update.")); }
public async Task <ActionResult> PutLesson(long id, UpdateLessonDto lessonDto) { if (!ModelState.IsValid) { return(BadRequest()); } lessonDto.Id = id; var updatedLesson = await _lessonService.UpdateLessonAsync(lessonDto); if (updatedLesson != null) { return(Ok(updatedLesson)); } return(StatusCode(409, "Cannot update.")); }
public async Task <LessonDto> UpdateLessonAsync(long id, UpdateLessonDto lessonModel) { try { var foundLesson = await _unitOfWork.LessonRepository.GetByIdAsync(id); if (foundLesson == null) { return(null); } if (!String.IsNullOrEmpty(lessonModel.ThemeName)) { var foundTheme = await _unitOfWork.ThemeRepository.GetThemeByNameAsync(lessonModel.ThemeName); if (foundTheme != null) { foundLesson.Theme = foundTheme; } else { var theme = new Theme { Name = lessonModel.ThemeName }; _unitOfWork.ThemeRepository.Add(theme); foundLesson.Theme = theme; } } if (lessonModel.LessonDate != default(DateTime)) { foundLesson.LessonDate = lessonModel.LessonDate; } if (lessonModel.LessonVisits != null) { await _unitOfWork.VisitRepository.DeleteWhereLessonIdAsync(foundLesson.Id); for (int i = 0; i < lessonModel.LessonVisits.Count; i++) { var visit = new Visit { Lesson = foundLesson, StudentId = lessonModel.LessonVisits[i].StudentId, Comment = lessonModel.LessonVisits[i].Comment, Presence = lessonModel.LessonVisits[i].Presence, StudentMark = lessonModel.LessonVisits[i].StudentMark }; _unitOfWork.VisitRepository.Add(visit); } } await _unitOfWork.CommitAsync(); return(_mapper.Map <LessonDto>(foundLesson)); } catch { _unitOfWork.Rollback(); return(null); } }
public async Task UpdateLessonAsync() { //Arrange Theme theme = new Theme { Name = "ExampleName", Id = 5 }; Mentor mentor = new Mentor { Id = 2 }; StudentGroup studentGroup = new StudentGroup { Id = 3 }; List <VisitDto> visitsDto = new List <VisitDto>() { }; var foundLesson = new Lesson() { Id = 7, MentorId = 2, StudentGroupId = 3, ThemeId = 5, Mentor = mentor, StudentGroup = studentGroup, Theme = theme, Visits = { } }; var updateLessonDto = new UpdateLessonDto { ThemeName = null, LessonDate = DateTime.Parse("2020-11-18T15:30:00.384Z"), LessonVisits = null }; var foundLessonDto = new LessonDto() { Id = 7, ThemeName = "ExampleName", MentorId = 2, StudentGroupId = 3, LessonDate = DateTime.Parse("2020-11-18T15:00:00.384Z"), LessonVisits = null }; var updatedLesson = new LessonDto() { Id = 7, ThemeName = "ExampleName", MentorId = 2, StudentGroupId = 3, LessonDate = DateTime.Parse("2020-11-18T15:30:00.384Z"), LessonVisits = visitsDto }; _unitOfWorkMock.Setup(x => x.LessonRepository.GetByIdAsync(7)) .ReturnsAsync(foundLesson); var lessonService = new LessonService( _unitOfWorkMock.Object, _mapper ); //Act var result = await lessonService.UpdateLessonAsync(7, updateLessonDto); //Assert Assert.NotNull(result); Assert.Equal(updatedLesson.Id, result.Id); Assert.Equal(updatedLesson.LessonDate, result.LessonDate); Assert.Equal(updatedLesson.LessonVisits, result.LessonVisits); Assert.Equal(updatedLesson.MentorId, result.MentorId); Assert.Equal(updatedLesson.StudentGroupId, result.StudentGroupId); Assert.Equal(updatedLesson.ThemeName, result.ThemeName); }