public async Task<ActionResult> RegisterStudent(RegisterViewModel model) { try { if (ModelState.IsValid) { var user = new ApplicationUser {UserName = model.Login}; var result = await UserManager.CreateAsync(user, model.Password); await UserManager.AddToRoleAsync(user.Id, Constants.Roles.Student); if (result.Succeeded) { await SignInManager.SignInAsync(user, false, false); var studentInfo = new Student { Id = user.Id, Name = model.StudentRegisterVewModel.Name, Surname = model.StudentRegisterVewModel.Surname }; StudentRepository.InsertStudent(studentInfo); if (model.StudentRegisterVewModel.SubjectIds != null) { foreach (var subjectId in model.StudentRegisterVewModel.SubjectIds) { var subject = SubjectRepository.GetSubjectId(Guid.Parse(subjectId)); StudentRepository.AddSubjectForStudent(studentInfo, subject); } } return RedirectToAction("Index", "Home"); } AddErrors(result); } } catch (Exception e) { } // If we got this far, something failed, redisplay form return RedirectToAction("Index", "Home"); }
public async Task<ActionResult> RegisterProfessor(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser {UserName = model.Login, Email = model.Login}; var result = await UserManager.CreateAsync(user, model.Password); await UserManager.AddToRoleAsync(user.Id, Constants.Roles.Professor); if (result.Succeeded) { await SignInManager.SignInAsync(user, false, false); var professorInfo = new Professor { Id = user.Id, Name = model.ProfessorRegisterVewModel.Name, Surname = model.ProfessorRegisterVewModel.Surname }; ProfessorRepository.InsertProfessor(professorInfo); if (model.ProfessorRegisterVewModel.Subjects != null) { foreach (var subjectName in model.ProfessorRegisterVewModel.Subjects) { var subject = new Subject { Id = Guid.NewGuid(), Name = subjectName, Professor = professorInfo }; SubjectRepository.InsertSubject(subject); ProfessorRepository.AddSubjectForProfessor(professorInfo, subject); } } return RedirectToAction("Index", "Home"); } AddErrors(result); } // If we got this far, something failed, redisplay form return RedirectToAction("Index", "Home"); }