// 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));
        }
Ejemplo n.º 2
0
        public ActionResult AddClasses()
        {
            var teacherEnrollmentViewModel = new TeacherEnrollmentViewModel {
                enrollments = PopulateEnrollmentData()
            };

            return(View(teacherEnrollmentViewModel));
        }
Ejemplo n.º 3
0
        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 }));
        }
Ejemplo n.º 5
0
        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());
        }
Ejemplo n.º 6
0
        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));
        }