Exemple #1
0
        public ActionResult AssignTeacher(TeachersAssignVM model)
        {
            if (ModelState.IsValid)
            {
                Course selectedCourse = unitOfWork.CourseRepository.GetById(model.SelectedCourseId);

                if (selectedCourse == null)
                {
                    model.Courses = unitOfWork.CourseRepository.GetAll().ToList();
                    TempData.FlashMessage("Select a course", null, FlashMessageTypeEnum.Red);
                    return(View(model));
                }

                Teacher teacher = unitOfWork.TeacherRepository.GetById(model.Id, true);

                List <CoursesSubjects> css = unitOfWork.CoursesSubjectsRepository.GetByCourseId(model.SelectedCourseId);

                int a;
                // keys to be assigned for the course
                List <int> ids = Request.Form.AllKeys.Where(x =>
                                                            int.TryParse(x, out a)).Select <string, int>(x => int.Parse(x)).ToList();

                List <int> newIds = new List <int>(ids);

                teacher.CourseSubjects.RemoveAll(x =>
                {
                    if (x.CourseId != selectedCourse.Id)
                    {
                        return(false);
                    }

                    if (ids.Contains(x.Id))
                    {
                        newIds.Remove(x.Id);
                        return(false);
                    }
                    return(true);
                });

                teacher.CourseSubjects.AddRange(css.Where(cs =>
                                                          cs.CourseId == selectedCourse.Id &&
                                                          newIds.Contains(cs.SubjectId)));

                unitOfWork.Save();

                return(RedirectToAction("ManageTeachers"));
            }

            model.Courses = unitOfWork.CourseRepository.GetAll().ToList();
            return(View(model));
        }
Exemple #2
0
        public ActionResult AssignTeacher(int?id)
        {
            if (!id.HasValue)
            {
                return(RedirectToAction("ManageTeachers"));
            }

            TeachersAssignVM model = new TeachersAssignVM();

            model.Id      = id.Value;
            model.Courses = unitOfWork.CourseRepository.GetAll().ToList();

            return(View(model));
        }