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