public async Task <int> ValidarAulasSemFrequenciaRegistrada(long fechamentoId, Turma turma, long disciplinaId, DateTime inicioPeriodo, DateTime fimPeriodo) { var registrosAulasSemFrequencia = repositorioAula.ObterAulasSemFrequenciaRegistrada(turma.CodigoTurma, disciplinaId.ToString(), inicioPeriodo, fimPeriodo); if (registrosAulasSemFrequencia != null && registrosAulasSemFrequencia.Any()) { var componenteCurricular = (await repositorioComponenteCurricular.ObterDisciplinasPorIds(new long[] { disciplinaId })).ToList()?.FirstOrDefault(); if (componenteCurricular == null) { throw new NegocioException("Componente curricular não encontrado."); } var mensagem = new StringBuilder($"A aulas de {componenteCurricular.Nome} da turma {turma.Nome} a seguir estão sem frequência:<br>"); // Carrega lista de professores var usuariosProfessores = CarregaListaProfessores(registrosAulasSemFrequencia.Select(a => a.ProfessorRf).Distinct()); foreach (var aula in registrosAulasSemFrequencia.OrderBy(x => x.DataAula)) { var professor = usuariosProfessores.FirstOrDefault(c => c.CodigoRf == aula.ProfessorRf); mensagem.AppendLine($"Professor { aula.ProfessorRf} - { professor.Nome}, dia {aula.DataAula.ToString("dd/MM/yyyy")}.<br>"); } var professorRf = registrosAulasSemFrequencia.First().ProfessorRf; await GerarPendencia(fechamentoId, TipoPendencia.AulasSemFrequenciaNaDataDoFechamento, mensagem.ToString(), professorRf); } else { repositorioPendencia.AtualizarPendencias(fechamentoId, SituacaoPendencia.Resolvida, TipoPendencia.AulasSemFrequenciaNaDataDoFechamento); } aulasSemFrequencia = registrosAulasSemFrequencia.Count(); return(aulasSemFrequencia); }