public async Task <IHttpActionResult> PostProfessor(ProfessorRegisterViewModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var professor = new Professor { UserName = model.Email, Email = model.Email, Name = model.Name, SSN = model.SSN, PhoneNumber = model.PhoneNumber, DepartmentId = model.DepartmentId }; IdentityResult result = await UserManager.CreateAsync(professor, model.Password); if (!result.Succeeded) { return(GetErrorResult(result)); } return(CreatedAtRoute("DefaultApi", new { id = professor.Id }, (ProfessorResultViewModel)professor)); }
public async Task <ActionResult> Create(ProfessorRegisterViewModel registerModel, string[] selectedStudents, string[] grades) { var professor = new Professor() { FirstName = registerModel.FirstName, LastName = registerModel.LastName, Course = registerModel.Course }; professor.Enrollments = new List <Enrollment>(); if (ModelState.IsValid) { if (selectedStudents != null) { foreach (var student in selectedStudents) { Enrollment newEnrollment = new Enrollment(); newEnrollment.Professor = professor; int i = int.Parse(student); newEnrollment.StudentID = i; if (!string.IsNullOrEmpty(grades[i - 1])) { newEnrollment.Grade = int.Parse(grades[i - 1]); } professor.Enrollments.Add(newEnrollment); } } var user = new ApplicationUser { UserName = registerModel.Login }; await UserManager.CreateAsync(user, registerModel.Password); professor.User = UserManager.FindByName(registerModel.Login); var db = HttpContext.GetOwinContext().Get <ApplicationDbContext>(); db.Professors.Add(professor); db.SaveChanges(); } PopulateAssignedStudents(professor); return(RedirectToAction("Index")); }