public UsuarioViewModel ObterUsuario(UsuarioAuthenticateViewModel vm)
        {
            vm.Password = Encription.Encrypt(vm.Password, Encription.Key256, 256);

            var usuario = _usuarioRepository.ObterPorEmailPassword(vm.Email, vm.Password);

            return(_mapper.Map <UsuarioViewModel>(usuario));
        }
        public IActionResult Authenticate([FromBody] UsuarioAuthenticateViewModel vm)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var usuario = _usuarioAppService.ObterUsuario(vm);

            if (usuario == null)
            {
                return(BadRequest(new { message = "Usuário ou senha inválidos" }));
            }

            var token = TokenService.GenerateToken(usuario);

            usuario.Password = string.Empty;

            return(Ok(new { user = usuario, token = token }));
        }