public async Task<ActionResult> RegisterParticipant(RegisterParticipantViewModel m) { //Check if inputs were valid if (ModelState.IsValid) { //Create an account so they can login using their username and password var user = new ApplicationUser { UserName = m.Username, Email = m.Email }; var result = await UserManager.CreateAsync(user, m.Password); //If the above process succeeds if (result.Succeeded) { //Sign in as user await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); //Create a person in the database var person = new PX_Model.Person(); person.First_Name = m.FirstName; person.Last_Name = m.LastName; person.Phone_Number = m.PhoneNumber; person.Postcode = m.Postcode; person.State = m.State; person.Street = m.Street; person.Suburb = m.Suburb; person.Email = m.Email; person.Username = m.Username; //Push it on to the database _db.People.Add(person); _db.SaveChanges(); //Create a participant on the database var participant = new PX_Model.Participant(); participant.Person_Id = person.Id; participant.Gender = m.Gender; participant.Date_Of_Birth = m.DateOfBirth; //Push participant on to the database _db.Participants.Add(participant); _db.SaveChanges(); //Assign them the role of a participant var u = UserManager.FindByName(m.Username); UserManager.AddToRole(u.Id, "Participant"); //We then redirect to the participant dashboard return RedirectToAction("Index", "Participant"); } AddErrors(result); } //if it fails, go back to the current view and display the errors ArrayList gList = new ArrayList(); gList.Add("Male"); gList.Add("Female"); m.GenderList = new SelectList(gList); return View(m); }
public async Task<ActionResult> RegisterParticipant(RegisterParticipantViewModel m) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = m.Username, Email = m.Email }; var result = await UserManager.CreateAsync(user, m.Password); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); var person = new PX_Model.Person(); person.First_Name = m.FirstName; person.Last_Name = m.LastName; person.Phone_Number = m.PhoneNumber; person.Postcode = m.Postcode; person.State = m.State; person.Street = m.Street; person.Suburb = m.Suburb; person.Email = m.Email; person.Username = m.Username; _db.People.Add(person); _db.SaveChanges(); var participant = new PX_Model.Participant(); participant.Person_Id = person.Id; participant.Gender = m.Gender; participant.Date_Of_Birth = m.DateOfBirth; _db.Participants.Add(participant); _db.SaveChanges(); var u = UserManager.FindByName(m.Username); UserManager.AddToRole(u.Id, "Participant"); return RedirectToAction("Index", "Participant"); } AddErrors(result); } ArrayList gList = new ArrayList(); gList.Add("Male"); gList.Add("Female"); m.GenderList = new SelectList(gList); return View(m); }