public IActionResult Login([FromBody] AutenticarUsuarioCommand command)
        {
            _autenticarUsuario.Execute(command);
            var result = _autenticarUsuario.ResultCommand as AutenticarUsuarioResultCommand;

            return(Ok(result));
        }
        public async Task <Option <string> > Handle(AutenticarUsuarioCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                NotifyValidationErrors(request);
                return(Option.None <string>());
            }

            var usuario = Usuario.CriarAutenticar(request.Email, request.Senha);

            if (!usuario.PodeSeAutenticar(usuarioReadOnlyRepository))
            {
                NotifyValidationErrors(usuario);
                return(Option.None <string>());
            }

            var usuarioViewModel = (await usuarioReadOnlyRepository.ObterParaAutenticacao(usuario.Email))
                                   .ValueOr(AutorizacaoUsuarioViewModel.Empty());

            var identityUser = identityManager.CreateUser(
                usuarioViewModel.NomeCompleto,
                usuarioViewModel.Email,
                Enumerable.Empty <string>())
                               .ValueOr(UserIdentity.Empty());

            return(identityManager.GenereteAccessToken(identityUser));
        }
        public async Task <ICommandResult> HandleAsync(AutenticarUsuarioCommand command)
        {
            AddNotifications(new Contract()
                             .Requires()
                             .IsNotNullOrEmpty(command.Email, "usuario.e-mail", "E-mail deve ser preenchido!")
                             .IsNotNullOrEmpty(command.Senha, "usuario.senha", "Senha deve ser preenchida!"));

            if (Invalid)
            {
                return(new AutenticarUsuarioCommandResult(false, "Inconsitências encontradas", Notifications));
            }

            var usuario = await _usuarioRepository.GetAsync(command.Email);

            AddNotifications(new Contract()
                             .Requires()
                             .IsNotNull(usuario, "usuario.email", "Usuário inválido"));


            if (Invalid)
            {
                _logger.LogError(Notifications.ToString());
                return(new AutenticarUsuarioCommandResult(false, "Inconsitências encontradas", Notifications));
            }

            AddNotifications(new Contract()
                             .Requires()
                             .IsTrue(usuario.ValidarSenha(command.Senha, _encrypter), "usuario.senha", "Senha inválida"));

            if (Invalid)
            {
                _logger.LogError(Notifications.ToString());
                return(new AutenticarUsuarioCommandResult(false, "Inconsitências encontradas", Notifications));
            }

            _logger.LogInformation($"Credênciais válidas, retornando o usuário: {usuario.Email}");

            return(new AutenticarUsuarioCommandResult(true, "sucess", _jwtHandler.Create(usuario.Email)));
        }
 public async Task <IActionResult> Autenticar([FromBody] AutenticarUsuarioCommand command)
 {
     return(Ok(await Mediator.Send(command)));
 }
        public async Task <ICommandResult> Login([FromBody] AutenticarUsuarioCommand command)
        {
            var result = (AutenticarUsuarioCommandResult)await _usuarioHandler.HandleAsync(command);

            return(result);
        }
Exemple #6
0
        public async Task <IActionResult> Authenciar([FromBody] AutenticarUsuarioCommand user)
        {
            var resultado = await _commandAutenticar.Handle(user).ConfigureAwait(true) as CommandResult;

            return(Accepted(resultado));
        }
Exemple #7
0
 public async Task <string> Autenticar(string email, string senha) =>
 (await bus.SendCommand <AutenticarUsuarioCommand, Option <string> >(
      AutenticarUsuarioCommand.Criar(email, senha))
 ).Match(
     some: token => token,
     none: () => string.Empty);