public async Task <int> ValidarAulasSemPlanoAulaNaDataDoFechamento(long fechamentoId, Turma turma, long disciplinaId, DateTime inicioPeriodo, DateTime fimPeriodo) { var registrosAulasSemPlanoAula = repositorioAula.ObterAulasSemPlanoAulaNaDataAtual(turma.CodigoTurma, disciplinaId.ToString(), inicioPeriodo, fimPeriodo); if (registrosAulasSemPlanoAula != null && registrosAulasSemPlanoAula.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 plano de aula registrado até a data do fechamento:<br>"); var usuariosProfessores = CarregaListaProfessores(registrosAulasSemPlanoAula.Select(a => a.ProfessorRf).Distinct()); foreach (var aula in registrosAulasSemPlanoAula.OrderBy(a => a.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 = registrosAulasSemPlanoAula.First().ProfessorRf; await GerarPendencia(fechamentoId, TipoPendencia.AulasSemPlanoAulaNaDataDoFechamento, mensagem.ToString(), professorRf); } else { repositorioPendencia.AtualizarPendencias(fechamentoId, SituacaoPendencia.Resolvida, TipoPendencia.AulasSemPlanoAulaNaDataDoFechamento); } aulasSemPlanoAula = registrosAulasSemPlanoAula.Count(); return(aulasSemPlanoAula); }