// GET: Students/DetailsEnrollment/11?tId=1 public async Task <IActionResult> DetailsEnrollment(int?id, int?tId) { if (id == null || tId == null) { return(NotFound()); } Teacher teacher = await _context.Teachers .FirstOrDefaultAsync(t => t.Id == tId); Enrollment enrollment = await _context.Enrollments .Include(e => e.Course) .Include(e => e.Student) .FirstOrDefaultAsync(e => e.Id == id && (e.Course.FirstTeacherId == tId || e.Course.SecondTeacherId == tId)); if (teacher == null || enrollment == null) { return(NotFound()); } AppUser user = await userManager.GetUserAsync(User); if (tId != user.TeacherId) { return(RedirectToAction("AccessDenied", "Account", null)); } var teacherEnrollmentViewModel = new TeacherEnrollmentViewModel { Teacher = teacher, Enrollment = enrollment }; return(View(teacherEnrollmentViewModel)); }
public ActionResult AddClasses() { var teacherEnrollmentViewModel = new TeacherEnrollmentViewModel { enrollments = PopulateEnrollmentData() }; return(View(teacherEnrollmentViewModel)); }
public ActionResult UpdateClasses(TeacherEnrollmentViewModel model) { string id = User.Identity.GetUserId(); var teacher = db.Teachers.Find(id); if (ModelState.IsValid) { if (model.enrollments.Any()) { var enrollments = new List <Enrollment>(); foreach (var i in model.enrollments) { if (i.Assigned) { var enroll = db.Enrollments.ToList().Find(p => p.Id == i.EnrollmentId); enrollments.Add(enroll); } } var Enrollments = (from i in enrollments select i).Except(teacher.enrollments).ToList(); foreach (var i in Enrollments) { var enrollment = enrollments.ToList().Find(p => p.Id == i.Id); teacher.enrollments.Add(enrollment); } var dlt = teacher.enrollments.ToList().FindAll(p => !enrollments.Contains(p)); foreach (var i in dlt) { var subj = i.EnrollmentSubjects.ToList().Find(p => p.Teacher == (teacher)); teacher.EnrollmentSubjects.Remove(subj); teacher.enrollments.Remove(i); } } db.Entry(teacher).State = EntityState.Modified; if (!teacher.enrollments.Any()) { ModelState.AddModelError("", "You cannot uncheck all classes, A teacher must have atleast one class."); var teacherEnrollmentViewModel = new TeacherEnrollmentViewModel { enrollments = PopulateUpdateEnrollmentData(teacher) }; return(View(teacherEnrollmentViewModel)); } db.SaveChanges(); foreach (var i in teacher.enrollments) { var subj = i.EnrollmentSubjects.ToList().Find(p => p.Teacher == (teacher)); if (subj == null) { return(RedirectToAction("UpdateSubjects")); } } return(RedirectToAction("Details", "Teachers")); } return(View(model)); }
public async Task <IActionResult> EditEnrollment(int id, int tId, TeacherEnrollmentViewModel input) { Enrollment entry = input.Enrollment; if (entry.Id != id) { return(NotFound()); } var enrollment = await _context.Enrollments .Include(e => e.Course) .Include(e => e.Student) .FirstOrDefaultAsync(m => m.Id == id && (m.Course.FirstTeacherId == tId || m.Course.SecondTeacherId == tId)); if (enrollment == null) { return(NotFound()); } AppUser user = await userManager.GetUserAsync(User); if (tId != user.TeacherId) { return(RedirectToAction("AccessDenied", "Account", null)); } if (ModelState.IsValid) { try { enrollment.ExamPoints = entry.ExamPoints; enrollment.SeminalPoints = entry.SeminalPoints; enrollment.ProjectPoints = entry.ProjectPoints; enrollment.AdditionalPoints = entry.AdditionalPoints; enrollment.Grade = entry.Grade; enrollment.FinishDate = entry.FinishDate; _context.Update(enrollment); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!EnrollmentExists(id)) { return(NotFound()); } else { throw; } } } return(RedirectToAction(nameof(EditEnrollment), new { id, tId })); }
public ActionResult UpdateClasses() { string userId = User.Identity.GetUserId(); var teacher = db.Teachers.Find(userId); if (teacher.enrollments.Any()) { var teacherEnrollmentViewModel = new TeacherEnrollmentViewModel { enrollments = PopulateUpdateEnrollmentData(teacher) }; return(View(teacherEnrollmentViewModel)); } return(View()); }
public ActionResult AddClasses(TeacherEnrollmentViewModel teacherEnrollmentViewModel) { if (ModelState.IsValid) { string id = User.Identity.GetUserId(); var teacher = db.Teachers.Find(id); AddEnrollments(teacher, teacherEnrollmentViewModel.enrollments); db.Entry(teacher).State = EntityState.Modified; if (!teacher.enrollments.Any()) { ModelState.AddModelError("", "Please select atleast one Class you are taking in your school."); var teacherEnrollViewModel = new TeacherEnrollmentViewModel { enrollments = PopulateEnrollmentData() }; return(View(teacherEnrollViewModel)); } db.SaveChanges(); return(RedirectToAction("AddSubjects")); } return(View(teacherEnrollmentViewModel)); }