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 ActionResult RegisterParticipant()
 {
     RegisterParticipantViewModel m = new RegisterParticipantViewModel();
     ArrayList gList = new ArrayList();
     gList.Add("Male");
     gList.Add("Female");
     m.GenderList = new SelectList(gList);
     m.DateOfBirth = DateTime.Now;
     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> Register(RegisterParticipantViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
                    return RedirectToAction("Index", "Home");
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }
        public async Task<ActionResult> Register(RegisterParticipantViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
                    
                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return RedirectToAction("Index", "Home");
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }