private RegisterModel GenerateRegisterForm(RegisterModel model=null) { var db = new Context(); model = model?? new RegisterModel(); model.States = db.States; model.Districts = db.Districts.Where(t => t.State_Id == model.State); model.Schools = db.Schools.Where(t => t.District_Id == model.District); var result = new List<SelectListItem>(); foreach (var t in db.Subjects) { var selectListItem = new SelectListItem { Text = t.SubjectName, Value = t.Id.ToString(), }; if(model.SubjectIds != null && model.SubjectIds.Contains(t.Id)) { selectListItem.Selected = true; } result.Add(selectListItem); } model.Subjects = result.ToList(); result = new List<SelectListItem>(); foreach (var t in db.Grades) { var selectListItem = new SelectListItem { Text = t.GradeName, Value = t.Id.ToString(), }; if (model.GradeIds != null && model.GradeIds.Contains(t.Id)) { selectListItem.Selected = true; } result.Add(selectListItem); } model.Grades = result.ToList(); return model; }
public ActionResult Register(RegisterModel model) { var db = new Context(); if (ModelState.IsValid) { try { WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { model.Email, model.First, model.Last }); WebSecurity.Login(model.UserName, model.Password); var school = db.Schools.FirstOrDefault(t => t.Id == model.School); var user = db.UserProfiles.FirstOrDefault(t => t.UserName == model.UserName); db.UserProfileSchools.Add(new UserProfileSchool { School = school, UserProfile = user }); foreach (var gradeId in model.GradeIds) { var userGrade = new UserGrade { UserProfile = user, Grade_Id = gradeId }; db.UserGrades.Add(userGrade); } foreach (var subjectId in model.SubjectIds) { var userSubject = new UserSubject { UserProfile = user, Subject_Id = subjectId }; db.UserSubjects.Add(userSubject); } db.SaveChanges(); return RedirectToAction("TakeATour", "Home", new { Area = "" }); } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); } } return View(GenerateRegisterForm(model)); }