public async Task<IHttpActionResult> Register(RegisterBindingModel model) { if (!ModelState.IsValid) { return BadRequest(ModelState); } var user = new ApplicationUser() { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, DisplayName = model.DisplayName, Status = "In good standing", MemberSince = DateTime.Now, IsActive = true }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return GetErrorResult(result); } //Uncomment to send an email confirmation string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); code = System.Web.HttpUtility.UrlEncode(code); var callbackUrl = String.Format("/confirmEmail?userId={0}&code={1}", user.Id, code); var absoluteCallbackUrl = Request.GetUrlHelper().Content(callbackUrl); await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Welcome to Mixed Up!\n\nPlease confirm your account by clicking <a href=\"" + absoluteCallbackUrl + "\">here</a>"); return Ok(); }
public async Task<HttpResponseMessage> Register(RegisterBindingModel model) { List<string> errors = new List<string>(); errors = ModelErrorChecker.Check(ModelState); if (errors.Count == 0) { var user = new User() { UserName = model.Email, Email = model.Email }; if (UserManager.FindByEmail(model.Email) == null) { IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return Request.CreateResponse(HttpStatusCode.NotAcceptable, result.Errors); } } else return Request.CreateResponse(HttpStatusCode.NotAcceptable, "Email address is already in use."); } else return Request.CreateResponse(HttpStatusCode.NotAcceptable, errors); return Request.CreateResponse(HttpStatusCode.OK); }