public async Task <IEnumerable <StatusNotificacaoUsuario> > Handle(ObterStatusNotificacaoUsuarioQuery request, CancellationToken cancellationToken) { var statusNotificacaoUsuario = new List <StatusNotificacaoUsuario>(); var aluno = await alunoRepositorio.ObterDadosAlunoPorCodigo(request.CodigoAluno); Usuario usuario = null; if (aluno != null) { usuario = await usuarioRepositorio.ObterPorCpf(aluno.CpfResponsavel); } foreach (var notificacaoId in request.NotificoesId) { var dadosLeituraComunicados = await dadosLeituraRepositorio.ObterDadosLeituraAlunos(notificacaoId, request.CodigoAluno.ToString()); if (dadosLeituraComunicados.Any()) { statusNotificacaoUsuario.Add(new StatusNotificacaoUsuario(notificacaoId, dadosLeituraComunicados.First().DataLeitura.Value, $"Lida - em {dadosLeituraComunicados.First().DataLeitura.Value.ToString("dd/MM/yyyy HH:mm")}")); } if (!dadosLeituraComunicados.Any() && usuario != null) { statusNotificacaoUsuario.Add(new StatusNotificacaoUsuario(notificacaoId, null, $"Não lida")); } if (!dadosLeituraComunicados.Any() && usuario == null) { statusNotificacaoUsuario.Add(new StatusNotificacaoUsuario(notificacaoId, null, $"Não tem APP")); } } return(statusNotificacaoUsuario); }