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));
            }
        }
Esempio n. 2
0
            public async Task <bool> Handle(UsuarioNotificacaoCommand request, CancellationToken cancellationToken)
            {
                var usuarioNotificacaoRequest = request.UsuarioNotificacao;

                var usuarioNotificacao = await _repository.ObterPorNotificacaoIdEhUsuarioCpf(usuarioNotificacaoRequest.NotificacaoId,
                                                                                             usuarioNotificacaoRequest.UsuarioCpf,
                                                                                             usuarioNotificacaoRequest.DreCodigoEol,
                                                                                             usuarioNotificacaoRequest.UeCodigoEol);

                if (usuarioNotificacao == null)
                {
                    return(await _repository.Criar(request.UsuarioNotificacao));
                }

                usuarioNotificacao.MensagemVisualizada = request.UsuarioNotificacao.MensagemVisualizada;

                usuarioNotificacao.AtualizarAuditoria();

                return(await _repository.Atualizar(usuarioNotificacao));
            }