public IActionResult AssignLecturers(int id) { Course course = courseService.GetCourse(id); if (course == null) { return(NotFound()); } List <Lecturer> allLecturers = lecturerService.GetAllLecturers(); CourseLecturersAssignmentViewModel model = new CourseLecturersAssignmentViewModel(); model.Course = course; model.LecturersAssignmentsList = new List <LecturerAssignment>(); foreach (var lecturer in allLecturers) { bool isAssigned = course.Lecturers.Any(c => c.Id == lecturer.Id); model.LecturersAssignmentsList.Add(new LecturerAssignment() { Lecturer = lecturer, IsAssigned = isAssigned }); } return(View(model)); }
public IActionResult AssignLecturers(CourseLecturersAssignmentViewModel model) { var assignedLecturersId = model.LecturersList.Where(a => a.IsAssigned).Select(l => l.Lecturer.Id); repository.SetLecturersToCourse(model.Course.Id, assignedLecturersId); return(RedirectToAction("Courses")); }
//[Fact] public void AssignLecturers_Post_ReturnsNotFound_WhenNonExistingCourseInModel() { // Arrange int nonExistingCourseId = 0; Course nonExistingCourse = new Course() { Id = nonExistingCourseId }; CourseLecturersAssignmentViewModel model = new CourseLecturersAssignmentViewModel() { Course = nonExistingCourse, LecturersAssignmentsList = new List <LecturerAssignment>() }; var courseServiceMock = Substitute.For <CourseService>(); courseServiceMock.IsCourseExisted(nonExistingCourse).Returns(false); var controller = new CourseController(courseServiceMock, null, null, null, null); // Act var result = controller.AssignLecturers(model); // Assert var viewResult = Assert.IsType <NotFoundResult>(result); }
public IActionResult AssignLecturers(int id) { var course = _repository.GetCourse(id); CourseLecturersAssignmentViewModel model = new CourseLecturersAssignmentViewModel() { Name = course.Name, Id = id, EndDate = course.EndDate, PassCredits = course.PassCredits, StartDate = course.StartDate, Lecturers = new List <LectureViewModel>() }; var allLecturers = _repository.GetAllLecturers(); foreach (var lecturer in allLecturers) { bool isAssigned = course.Lecturers.Any(p => p.Id == lecturer.Id); model.Lecturers.Add(new LectureViewModel() { IsAssigned = isAssigned, LectureFullName = lecturer.Name, LectureId = lecturer.Id }); } return(View(model)); }
public void AssignLecturers_Post_RedirectToCourses() { // Arrange int courseId = 1; const int assignedLecturerId = 2; const int nonAssignedLecturertId = 3; Course course = new Course() { Id = courseId }; CourseLecturersAssignmentViewModel model = new CourseLecturersAssignmentViewModel() { Course = course, LecturersAssignmentsList = new List <LecturerAssignment>() { new LecturerAssignment() { Lecturer = new Lecturer() { Id = assignedLecturerId }, IsAssigned = true }, new LecturerAssignment() { Lecturer = new Lecturer() { Id = nonAssignedLecturertId }, IsAssigned = false } } }; var courseServiceMock = Substitute.For <CourseService>(); courseServiceMock.IsCourseExisted(course).Returns(true); courseServiceMock.AssignStudentsToCourse(courseId, new List <int>()).Returns(true); var lecturerServiceMock = Substitute.For <LecturerService>(); //lecturerServiceMock.IsStudentExisted(new Lecturer()).Returns(true); var controller = new CourseController(courseServiceMock, null, null, null, lecturerServiceMock); // Act var result = controller.AssignLecturers(model); // Assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Null(redirectToActionResult.ControllerName); Assert.Equal("Courses", redirectToActionResult.ActionName); }
public IActionResult AssignLecturers(CourseLecturersAssignmentViewModel model) { // todo check //if (!courseService.IsCourseExisted(model.Course)) // return NotFound(); //foreach (var lecturerAssignment in model.LecturersAssignmentsList) //{ // if (!lecturerService.IsLecturerExisted(lecturerAssignment.Lecturer)) // return NotFound(); //} var assignedLecturersId = model.LecturersAssignmentsList.Where(a => a.IsAssigned).Select(l => l.Lecturer.Id).ToList(); courseService.AssignLecturersToCourse(model.Course.Id, assignedLecturersId); return(RedirectToAction("Courses")); }
public IActionResult AssignLecturers(int id) { Course course = repository.GetCourse(id); List <Lecturer> allLecturers = repository.GetAllLecturers(); CourseLecturersAssignmentViewModel model = new CourseLecturersAssignmentViewModel(); model.Course = course; model.LecturersList = new List <LecturerAssignment>(); foreach (var lecturer in allLecturers) { bool isAssigned = course.Lecturers.Any(c => c.Id == lecturer.Id); model.LecturersList.Add(new LecturerAssignment() { Lecturer = lecturer, IsAssigned = isAssigned }); } return(View(model)); }
public void AssignLecturers_Get_ReturnsViewResult_WithCourseLecturersAssignmentViewModel() { // Arrange const int courseId = 1; const int assignedLecturerId = 2; const int nonAssignedLecturerId = 3; var allLecturers = new List <Lecturer>() { new Lecturer() { Id = assignedLecturerId }, new Lecturer() { Id = nonAssignedLecturerId } }; CourseLecturersAssignmentViewModel expectedModel = new CourseLecturersAssignmentViewModel() { Course = new Course() { Id = courseId, Lecturers = new List <Lecturer>() { new Lecturer() { Id = assignedLecturerId } } }, LecturersAssignmentsList = new List <LecturerAssignment>() { new LecturerAssignment() { Lecturer = new Lecturer() { Id = assignedLecturerId }, IsAssigned = true }, new LecturerAssignment() { Lecturer = new Lecturer() { Id = nonAssignedLecturerId }, IsAssigned = false } } }; var courseServiceMock = Substitute.For <CourseService>(); courseServiceMock.GetCourse(courseId).Returns(new Course() { Id = courseId, Lecturers = new List <Lecturer>() { new Lecturer() { Id = assignedLecturerId } } }); var lecturerServise = Substitute.For <LecturerService>(); lecturerServise.GetAllLecturers().Returns(allLecturers); var controller = new CourseController(courseServiceMock, null, null, null, lecturerServise); // Act var result = controller.AssignLecturers(courseId); // Assert var viewResult = Assert.IsType <ViewResult>(result); var actualModel = Assert.IsType <CourseLecturersAssignmentViewModel>(viewResult.Model); actualModel.WithDeepEqual(expectedModel).Assert(); }
public IActionResult AssignLecturers([FromForm] CourseLecturersAssignmentViewModel model) { _repository.SetLecturersToCourse(model.Id, model.Lecturers.Where(p => p.IsAssigned).Select(p => p.LectureId)); return(RedirectToAction("AssignLecturers")); }