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