public async Task <bool> Handle(MarcarExcluidaMensagenUsuarioAlunoIdCommand request, CancellationToken cancellationToken)
        {
            var usuario = await usuarioRepository.ObterUsuarioNaoExcluidoPorCpf(request.Cpf) ?? throw new ArgumentException($"CPF não encontrado {request.Cpf}");

            var usuarioNotificacao = await usuarioNotificacaoRepositorio.ObterPorUsuarioAlunoNotificacao(usuario.Id, request.CodigoAluno, request.NotificacaoId);

            if (usuarioNotificacao == null)
            {
                usuarioNotificacao = new UsuarioNotificacao
                {
                    UsuarioId           = usuario.Id,
                    UsuarioCpf          = usuario.Cpf,
                    CriadoPor           = usuario.Cpf,
                    NotificacaoId       = request.NotificacaoId,
                    MensagemExcluida    = true,
                    MensagemVisualizada = true
                };
                return(await usuarioNotificacaoRepositorio.Criar(usuarioNotificacao));
            }
            else
            {
                usuarioNotificacao.MensagemExcluida = true;
                return(await usuarioNotificacaoRepositorio.Atualizar(usuarioNotificacao));
            }
        }
 public async Task <UsuarioNotificacao> Handle(ObterUsuarioNotificacaoQuery request, CancellationToken cancellationToken)
 {
     return(await usuarioNotificacaoRepositorio.ObterPorUsuarioAlunoNotificacao(request.UsuarioId, request.CodigoAluno, request.NotificacaoId));
 }