Exemple #1
0
        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());
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        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));
        }