private void CreateUser( MilenioRadartonaAPIUser user, string password, string initialRole = null) { if (_userManager.FindByNameAsync(user.UserName).Result == null) { var resultado = _userManager .CreateAsync(user, password).Result; if (resultado.Succeeded && !String.IsNullOrWhiteSpace(initialRole)) { _userManager.AddToRoleAsync(user, initialRole).Wait(); } } }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { if (ModelState.IsValid) { var user = new MilenioRadartonaAPIUser { UserName = Input.Email, Email = Input.Email, PhoneNumber = Input.Celular }; var result = await _userManager.CreateAsync(user, Input.Password); try { if (result.Succeeded) { _logger.LogInformation("Usuario criou uma nova conta com a senha."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { userId = user.Id, code = code }, protocol: Request.Scheme); //await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", // $"Por favor confirme sua conta <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicando aqui</a>."); await _roleManager.CreateAsync(new IdentityRole(Roles.ROLE_API_RADAR)); var userIdentity = _userManager.FindByNameAsync(Input.Email).Result; await _userManager.AddToRoleAsync(userIdentity, Roles.ROLE_API_RADAR); returnUrl = returnUrl ?? Url.Content("~/Intra/Index/"); await _signInManager.SignInAsync(user, isPersistent : false); /* Criar o usuario nosso */ Usuario usuario = new Usuario() { Bloqueado = false, Celular = Input.Celular, Email = Input.Email, CriacaoDeConta = DateTime.Now, UltimaMudancaDeSenha = DateTime.Now, TipoUsuario = Roles.ROLE_API_RADAR, Nome = Input.Nome, }; //IList<RequisicaoInfos> reqs = new List<RequisicaoInfos>(); //RequisicaoInfos req = new RequisicaoInfos() //{ // QtdReqFeitasNoDia = 0, // QtdReqDiaMax = 1000, // DiaRequisicao = DateTime.Now, // Usuario = usuario, //}; //reqs.Add(req); //usuario.ReqInfos = reqs; _ctx.Usuarios.Add(usuario); _ctx.SaveChanges(); User userLogin = new User(); userLogin.UserID = Input.Email; userLogin.Password = Input.Password; returnUrl = Url.Content("~/api/Login/" + userLogin.UserID + "/" + userLogin.Password); return(LocalRedirect(returnUrl)); } } catch (Exception e) { throw e; } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }