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)); }