public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // Attempt to register the user try { WebSecurity.CreateUserAndAccount(model.UserName, model.Password); WebSecurity.Login(model.UserName, model.Password); Roles.AddUserToRole(model.UserName, "Volunteer"); var userId = WebSecurity.GetUserId(model.UserName); Person newPerson = _volunteerSvc.Register(model.FirstName, model.LastName, model.Email, model.PhoneNumber, model.Cluster, userId); _volunteerSvc.UpdateDetails(newPerson); return(RedirectToAction("Index", "Home")); } catch (PersonAlreadyExistsException e) { ModelState.AddModelError("", "Email is already in use!"); } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); } } // If we got this far, something failed, redisplay form model.Clusters = _clusterSvc.GetList(); return(View(model)); }