Пример #1
0
        public async Task <ActionResult <Resultado <LoginResponseViewModel> > > Cadastrar(CadastroUsuarioViewModel cadastroUsuario)
        {
            if (User.Identity.IsAuthenticated)
            {
                return(Ok(Resultado.Failed()));
            }
            if (!ModelState.IsValid)
            {
                return(Ok(Resultado.Failed("Dados incorretos")));
            }
            if (!await _usuarioService.IsValidUser(cadastroUsuario))
            {
                return(Ok(Resultado.Failed(_notificador.GetNotifications().Select(x => x.Mensagem).ToArray())));
            }

            var user = _map.Map <AspNetUser>(cadastroUsuario);

            var result = await _userManager.CreateAsync(user, cadastroUsuario.senha);

            if (result.Succeeded)
            {
                await _signInManager.SignInAsync(user, false);

                return(Ok(Resultado <LoginResponseViewModel> .Successfull(await GenerateJWT(cadastroUsuario.email))));
            }
            return(Ok(Resultado.Failed(GetRegisterErrors(result.Errors).ToArray())));
        }