public async Task <ActionResult> Register(RegisterBm bind) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = bind.Username, Email = bind.Email }; var result = await UserManager.CreateAsync(user, bind.Password); if (result.Succeeded) { //Every user is with Player role await UserManager.AddToRoleAsync(UserManager.Users.FirstOrDefault(u => u.Email == bind.Email).Id, "Player"); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); service.RegisterPlayer(bind); // 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); } RegisterViewModel model = AutoMapper.Mapper.Map <RegisterViewModel>(bind); // If we got this far, something failed, redisplay form return(View(model)); }
public void RegisterPlayer(RegisterBm bind) { if (string.IsNullOrEmpty(bind.FirstName) || string.IsNullOrEmpty(bind.LastName)) { bind.FirstName = "Default"; bind.LastName = "Name"; } Context.Players.Add(new Player() { AppUser = Context.Users.FirstOrDefault(u => u.Email == bind.Email), Points = 5 }); Context.SaveChanges(); }
public async Task <IActionResult> Register([FromBody] RegisterBm model) { if (await _userManager.FindByEmailAsync(model.Email) != null) { return(BadRequest(new ApiResult <string>(new { User = ErrorCodes.UserWithThisEmailAlreadyExists }))); } if (await _userManager.FindByNameAsync(model.Username) != null) { return(BadRequest(new ApiResult <string>(new { User = ErrorCodes.UserWithThisUsernameAlreadyExists }))); } if (!model.Password.Equals(model.ConfirmPassword)) { return(BadRequest(new ApiResult <string>(new { User = ErrorCodes.PasswordDoNotMatch }))); } var user = new AppUser { Email = model.Email, PhoneNumber = model.PhoneNumber, UserName = model.Username, Name = model.Name, Surname = model.Surname, DateJoined = DateTime.Now, IsActive = true, }; var result = await _userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return(BadRequest(new ApiResult <string>(new { User = result.Errors.First().ToString() }))); } return(Created("", result)); }