Beispiel #1
0
        public void Update(TeacherCourseViewModel vm)
        {
            Course courseEntity = this.CoursesRepository.GetById(vm.Id);

            courseEntity.Name        = vm.Name;
            courseEntity.Description = vm.Description;
            this.SaveChanges();
        }
        // GET: Teachers/EnrollmentsCourse/5?tId=2
        public async Task <IActionResult> EnrollmentsCourse(int?id, int?tId, string sInd, string sSem, int?sYear)
        {
            if (id == null || tId == null)
            {
                return(NotFound());
            }

            Teacher teacher = await _context.Teachers
                              .FirstOrDefaultAsync(t => t.Id == tId);

            Course course = await _context.Courses
                            .FirstOrDefaultAsync(c => c.Id == id &&
                                                 (c.FirstTeacherId == tId || c.SecondTeacherId == tId));

            IQueryable <Enrollment> enrollments = _context.Enrollments.Where(e => e.CourseId == id);
            IQueryable <int?>       years       = enrollments.OrderBy(m => m.Year).Select(m => m.Year).Distinct();
            IQueryable <string>     semesters   = enrollments.OrderBy(m => m.Semester).Select(m => m.Semester).Distinct();

            if (!string.IsNullOrEmpty(sInd))
            {
                enrollments = enrollments.Where(s => s.Student.StudentId.Contains(sInd));
            }
            if (!string.IsNullOrEmpty(sSem))
            {
                enrollments = enrollments.Where(x => x.Semester == sSem);
            }
            if (sYear != null)
            {
                enrollments = enrollments.Where(x => x.Year == sYear);
            }
            enrollments = enrollments.Include(e => e.Student);

            if (teacher == null || course == null)
            {
                return(NotFound());
            }

            AppUser user = await userManager.GetUserAsync(User);

            if (tId != user.TeacherId)
            {
                return(RedirectToAction("AccessDenied", "Account", null));
            }

            var teacherCourseViewModel = new TeacherCourseViewModel
            {
                Teacher     = teacher,
                Course      = course,
                Enrollments = await enrollments.ToListAsync(),
                Years       = new SelectList(await years.ToListAsync()),
                Semesters   = new SelectList(await semesters.ToListAsync())
            };

            return(View(teacherCourseViewModel));
        }
Beispiel #3
0
        public async Task <IActionResult> Index(string searchString)
        {
            IQueryable <Course> courses = _context.Course.AsQueryable();

            if (!string.IsNullOrEmpty(searchString))
            {
                courses = courses.Where(s => s.FirstTeacher.FirstName.Contains(searchString) || s.SecondTeacher.FirstName.Contains(searchString));
            }
            courses = courses.Include(m => m.FirstTeacher).Include(m => m.SecondTeacher)
                      .Include(m => m.Students).ThenInclude(m => m.Student);
            var teachercourseVM = new TeacherCourseViewModel
            {
                Courses = await courses.ToListAsync()
            };

            return(View(teachercourseVM));;
        }
Beispiel #4
0
        public void Test_Update_Should_Update_Course()
        {
            // Arrange
            TeacherCourseViewModel expectedVm = new TeacherCourseViewModel()
            {
                Id          = 1,
                Name        = "PB",
                Description = "Basics"
            };
            const string username = "******";

            // Act
            this.teacherCoursesService.Update(expectedVm);
            TeacherCourseViewModel actualVm = this.teacherCoursesService.GetAll(username).First();

            // Assert
            Assert.AreEqual(expectedVm.Name, actualVm.Name);
            Assert.AreEqual(expectedVm.Description, actualVm.Description);
        }
        [HttpGet]//DeleteCourseFromTeacher
        public ActionResult DeleteCourseFromTeacher(int?tId, int?cId)
        {
            if (tId == null || cId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ViewBag.cId = cId; //Course Id
            //know after we create new Viewmodel we can create object for dealing both classes in view side
            TeacherCourseViewModel myViewModel = new TeacherCourseViewModel();

            myViewModel.Teacher = db.Teachers.FirstOrDefault(s => s.Id == tId); //here we fitch our student
            myViewModel.Course  = db.Courses.FirstOrDefault(c => c.Id == cId);  //here we fitch our course

            if (myViewModel.Teacher == null || myViewModel.Course == null)
            {
                return(HttpNotFound());
            }
            //now we return viewmodel object to draw both
            return(View(myViewModel));  // View
        }
Beispiel #6
0
        // GET: Teachers
        public ActionResult Index(int?id, int?courseId)
        {
            //var teachers = db.Teachers.Include(c => c.Courses);
            //return View(teachers.ToList());

            var model = new TeacherCourseViewModel {
                Teachers = db.Teachers
                           .Include(c => c.Courses)
                           .OrderBy(t => t.Lastname)
                           .ToList()
            };

            if (id != null)
            {
                ViewBag.TeacherID = id.Value;
                model.Courses     = model.Teachers
                                    .Where(i => i.TeacherID == id.Value)
                                    .Single()
                                    .Courses;
            }

            if (courseId != null)
            {
                ViewBag.CourseID       = courseId;
                model.EnrolledStudents = model.Courses
                                         .Where(x => x.CourseID == courseId)
                                         .Single()
                                         .EnrolledStudents;

                model.EnrolledStudents =
                    db.Students
                    .Where(s => s.Courses.Any(c => c.CourseID == courseId))
                    .ToList();
            }



            return(View(model));
        }
Beispiel #7
0
        /// <summary>
        /// Index page for Teacher, populates the active semester dropdown, contains parameters for year, semester and selected courseInstance
        /// This makes the site bookmarkable
        /// </summary>
        public ActionResult Index(int?year, string semester, int?courseInstanceId)
        {
            var teacherId = _userService.GetUserIdByName(User.Identity.Name);
            var teacherActiveSemesters = _teacherService.GetTeacherActiveSemestersById(teacherId);

            var courseSelected = new TeacherCourseViewModel {
                OpenAssignments            = new List <TeacherAssignmentViewModel>(),
                ClosedAssignments          = new List <TeacherAssignmentViewModel>(),
                RequiresGradingAssignments = new List <TeacherAssignmentViewModel>(),
                UpcomingAssignments        = new List <TeacherAssignmentViewModel>(),
                ProblemList = new List <TeacherProblemUpdateViewModel>()
            };


            if (year.HasValue && !String.IsNullOrEmpty(semester))
            {
                var selected = teacherActiveSemesters.Find(find => find.Year == year.Value && find.Semester == semester);

                teacherActiveSemesters.RemoveAt(teacherActiveSemesters.IndexOf(selected));
                teacherActiveSemesters.Insert(0, selected);
            }
            else
            {
                var selected = _teacherService.GetClosestSemester(teacherActiveSemesters);

                teacherActiveSemesters.RemoveAt(teacherActiveSemesters.IndexOf(selected));
                teacherActiveSemesters.Insert(0, selected);
            }

            var teacherCourses = _teacherService.GetTeacherCoursesByDate(
                teacherId,
                teacherActiveSemesters.First().Year,
                teacherActiveSemesters.First().Semester
                );

            if (!courseInstanceId.HasValue)
            {
                courseInstanceId = teacherCourses.First().Id;
            }
            courseSelected = teacherCourses.SingleOrDefault(x => x.Id == courseInstanceId);

            if (courseSelected != null)
            {
                // Populate assignment problems
                var assignments = _teacherService.GetAssignmentsInCourseInstanceById(courseInstanceId.Value);
                foreach (var assignment in assignments)
                {
                    assignment.Problems         = _teacherService.GetProblemsInAssignmentById(assignment.Id);
                    assignment.TimeRemaining    = _teacherService.GetAssignmentTimeRemaining(assignment);
                    assignment.NumberOfProblems = assignment.Problems.Count + (assignment.Problems.Count == 1 ? " problems" : " problem");

                    // Get groups
                    foreach (var problem in assignment.Problems)
                    {
                        problem.Groups = _teacherService.GetAssignmentGroups(assignment.Id);
                    }
                }
                courseSelected.OpenAssignments            = _teacherService.GetOpenAssignmentsFromList(assignments);
                courseSelected.ClosedAssignments          = _teacherService.GetClosedAssignmentsFromList(assignments);
                courseSelected.RequiresGradingAssignments = _teacherService.GetRequiresGradingAssignmentsFromList(assignments);
                courseSelected.UpcomingAssignments        = _teacherService.GetUpcomingAssignmentsFromList(assignments);

                // Populate course problem list
                courseSelected.ProblemList = _teacherService.GetProblemsInCourseById(courseSelected.Id);
            }

            var model = new TeacherViewModel {
                ActiveSemesters = teacherActiveSemesters,
                TeacherCourses  = teacherCourses,
                CourseSelected  = courseSelected
            };

            ViewBag.UserName = User.Identity.Name;
            return(View(model));
        }