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); }
public async Task<ActionResult> RegisterAdministrator(RegisterAdministratorViewModel m) { //If input was 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 creating login account succeeded if (result.Succeeded) { //Log in as user await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); //Create 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 person to the database _db.People.Add(person); _db.SaveChanges(); //Create admin account PX_Model.Administrator admin = new PX_Model.Administrator(); admin.Person_Id = person.Id; //Push admin account to the database _db.Administrators.Add(admin); _db.SaveChanges(); //Assign them to the role of admin var u = UserManager.FindByName(m.Username); UserManager.AddToRole(u.Id, "Admin"); //Go to admin dashboard return RedirectToAction("Index", "Administrator"); } AddErrors(result); } //If error, then show the current view with error messages return View(m); }
public async Task<ActionResult> CreateInvestigator(RegisterInvestigatorViewModel m) { if (ModelState.IsValid) { var UserManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); var user = new ApplicationUser { UserName = m.Username, Email = m.Email }; var result = await UserManager.CreateAsync(user, m.Password); if (result.Succeeded) { var person = new PX_Model.Person(); person.First_Name = m.FirstName; person.Last_Name = m.LastName; person.Email = m.Email; person.Phone_Number = m.PhoneNumber; person.Postcode = m.Postcode; person.State = m.State; person.Street = m.Street; person.Suburb = m.Suburb; person.Username = m.Username; _db.People.Add(person); _db.SaveChanges(); var investigator = new PX_Model.Investigator(); investigator.Person_Id = person.Id; investigator.Institution = m.Institution; _db.Investigators.Add(investigator); _db.SaveChanges(); return View("Index"); } foreach (var error in result.Errors) { ModelState.AddModelError("", error); } } return View(m); }
public async Task<ActionResult> CreateClinician(CreateClinicianViewModel m) { //If input is valid if (ModelState.IsValid) { //Create login account var UserManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); var user = new ApplicationUser { UserName = m.Username, Email = m.Email }; var result = await UserManager.CreateAsync(user, m.Password); //If creation of login account was a success if (result.Succeeded) { //Create a person in the database var person = new PX_Model.Person(); person.First_Name = m.FirstName; person.Last_Name = m.LastName; person.Email = m.Email; person.Phone_Number = m.PhoneNumber; person.Postcode = m.Postcode; person.State = m.State; person.Street = m.Street; person.Suburb = m.Suburb; person.Username = m.Username; _db.People.Add(person); _db.SaveChanges(); //Create clinician in the database var clinician = new PX_Model.Clinician(); clinician.Person_Id = person.Id; _db.Clinicians.Add(clinician); _db.SaveChanges(); //Assign clinician account to clinician role var u = UserManager.FindByName(m.Username); UserManager.AddToRole(u.Id, "Clinician"); return View("Index"); } foreach (var error in result.Errors) { ModelState.AddModelError("", error); } } return View(m); }
public async Task<ActionResult> CreateInvestigator(RegisterInvestigatorViewModel m) { //If inputs are valid if (ModelState.IsValid) { //Create a login account var UserManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); var user = new ApplicationUser { UserName = m.Username, Email = m.Email }; var result = await UserManager.CreateAsync(user, m.Password); //If we successfully created a login account if (result.Succeeded) { //Create a person in the database var person = new PX_Model.Person(); person.First_Name = m.FirstName; person.Last_Name = m.LastName; person.Email = m.Email; person.Phone_Number = m.PhoneNumber; person.Postcode = m.Postcode; person.State = m.State; person.Street = m.Street; person.Suburb = m.Suburb; person.Username = m.Username; _db.People.Add(person); _db.SaveChanges(); //Create an investigator in the database var investigator = new PX_Model.Investigator(); investigator.Person_Id = person.Id; investigator.Institution = m.Institution; _db.Investigators.Add(investigator); _db.SaveChanges(); //Go to admin dashboard return View("Index"); } foreach (var error in result.Errors) { ModelState.AddModelError("", error); } } //If error, show the form again with error messages on the top return View(m); }
public async Task<ActionResult> RegisterAdministrator(RegisterAdministratorViewModel 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(); PX_Model.Administrator admin = new PX_Model.Administrator(); admin.Person_Id = person.Id; _db.Administrators.Add(admin); _db.SaveChanges(); var u = UserManager.FindByName(m.Username); UserManager.AddToRole(u.Id, "Admin"); return RedirectToAction("Index", "Administrator"); } AddErrors(result); } return View(m); }