コード例 #1
0
        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));
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        //[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);
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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"));
        }
コード例 #7
0
        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));
        }
コード例 #8
0
        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();
        }
コード例 #9
0
 public IActionResult AssignLecturers([FromForm] CourseLecturersAssignmentViewModel model)
 {
     _repository.SetLecturersToCourse(model.Id, model.Lecturers.Where(p => p.IsAssigned).Select(p => p.LectureId));
     return(RedirectToAction("AssignLecturers"));
 }