Exemple #1
0
        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();
                }
            }
        }
Exemple #2
0
        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());
        }