Esempio n. 1
0
        public async Task <IActionResult> Registro(RegistroViewModel registro)
        {
            if (ModelState.IsValid)
            {
                var usuario = new Usuario
                {
                    UserName     = registro.NomeUsuario,
                    Nome         = registro.Nome,
                    Email        = registro.Email,
                    CPF          = registro.CPF,
                    Telefone     = registro.Telefone,
                    PasswordHash = registro.Senha
                };
                _logger.LogInformation("Criando usuario");

                IdentityResult res = await _usuarioRepositorio.SalvarUsuario(usuario, registro.Senha);

                if (res.Succeeded)
                {
                    _logger.LogInformation("Usuario criado");
                    _logger.LogInformation("Usuario criado");
                    var nivelAcesso = "Cliente";

                    await _usuarioRepositorio.AtribuirNivelDeAcesso(usuario, nivelAcesso);

                    _logger.LogInformation("Atribuido com sucesso");

                    _logger.LogInformation("Logando usuario");

                    await _usuarioRepositorio.EfetuarLogin(usuario, false);

                    return(RedirectToAction("Index", "Usuarios"));
                }
                _logger.LogError("Erro ao criar o usuario");

                foreach (var erro in res.Errors)
                {
                    ModelState.AddModelError("", erro.Description.ToString());
                }
            }
            _logger.LogError("Informações invalidas");
            return(View(registro));
        }