public IActionResult Create() { ViewData["DepartmentID"] = new SelectList(_context.Departments.Include(i => i.Faculty), "DepartmentID", "Name", null, "Faculty.Name"); var professor = new RegProfModel(); professor.Courses = new List <CourseAssignment>(); PopulateAssignedCourseData(professor); return(View()); }
private void PopulateAssignedCourseData(RegProfModel professor) { var allCourses = _context.Courses.Where(i => i.Active == true); var professorCourses = new HashSet <int>(professor.Courses.Select(c => c.Course.CourseID)); var viewModel = new List <AssignedCourseData>(); foreach (var course in allCourses) { viewModel.Add(new AssignedCourseData { CourseID = course.CourseID, Title = course.Title, Assigned = professorCourses.Contains(course.CourseID) }); } ViewData["Courses"] = viewModel; }
public async Task <IActionResult> Create( RegProfModel professor, string Passwordfirst, string PasswordConfirm, string[] selectedCourses) { if (ModelState.IsValid) { var user = new Professor { UserName = professor.Email, Email = professor.Email, FirstMidName = professor.FirstMidName, LastName = professor.LastName, OfficeAssignment = professor.OfficeAssignment, Employment = new DepartmentEmploynment() { DepartmentID = professor.DepartmentID, }, }; var result = await _userManager.CreateAsync(user, professor.Password); if (!result.Succeeded) { var exceptionText = result.Errors.Aggregate("User Creation Failed - Identity Exception. Errors were: \n\r\n\r", (current, error) => current + (" - " + error + "\n\r")); throw new Exception(exceptionText); } else { await _userManager.AddToRoleAsync(user, "PROFESSOR"); } if (selectedCourses != null) { Professor tempuser = _context.Professors.FirstOrDefault(x => x.Email == user.Email); tempuser.Courses = new List <CourseAssignment>(); //var prof = await _context.Professors.SingleOrDefaultAsync(m => m.Id == i.Id); var selectedCoursesHS = new HashSet <string>(selectedCourses); var currentSem = await _context.Semesters.SingleOrDefaultAsync(i => i.Current == true); foreach (var course in _context.Courses) { if (selectedCoursesHS.Contains(course.CourseID.ToString())) { var huynya = new CourseAssignment { ProfessorID = tempuser.Id, CourseID = course.CourseID, SemesterID = currentSem.ID }; tempuser.Courses.Add(huynya); } } try { await _context.SaveChangesAsync(); } catch (DbUpdateException /* ex */) { //Log the error (uncomment ex variable name and write a log.) ModelState.AddModelError("", "Unable to save changes. " + "Try again, and if the problem persists, " + "see your system administrator."); } } return(RedirectToAction("Index")); } else { var errors = ModelState.Select(x => x.Value.Errors) .Where(y => y.Count > 0) .ToList(); } return(View(professor)); }