public async Task <ParecerConclusivoDto> ObterParecerConclusivo(long conselhoClasseId, long fechamentoTurmaId, string alunoCodigo, string codigoTurma) { var fechamentoTurma = await consultasFechamentoTurma.ObterCompletoPorIdAsync(fechamentoTurmaId); var turma = fechamentoTurma?.Turma; var ehAnoAtual = false; if (fechamentoTurma == null) { turma = await repositorioTurma.ObterPorCodigo(codigoTurma); if (turma == null) { throw new NegocioException("Turma não encontrada"); } if (ehAnoAtual) { throw new NegocioException("Não existe fechamento para a turma"); } } ehAnoAtual = turma.AnoLetivo == DateTime.Now.Year; if (turma.AnoLetivo != 2020 && ehAnoAtual && !await ExisteConselhoClasseUltimoBimestreAsync(turma, alunoCodigo)) { throw new NegocioException("Aluno não possui conselho de classe do último bimestre"); } var conselhoClasseAluno = await repositorioConselhoClasseAluno.ObterPorConselhoClasseAlunoCodigoAsync(conselhoClasseId, alunoCodigo); if (ehAnoAtual && (conselhoClasseAluno == null || !conselhoClasseAluno.ConselhoClasseParecerId.HasValue)) { return(await servicoConselhoClasse.GerarParecerConclusivoAlunoAsync(conselhoClasseId, fechamentoTurmaId, alunoCodigo)); } return(new ParecerConclusivoDto() { Id = conselhoClasseAluno?.ConselhoClasseParecerId != null ? conselhoClasseAluno.ConselhoClasseParecerId.Value : 0, Nome = conselhoClasseAluno?.ConselhoClasseParecer?.Nome }); }
public async Task <ParecerConclusivoDto> GerarParecerConclusivoAsync(long conselhoClasseId, long fechamentoTurmaId, string alunoCodigo) => await servicoConselhoClasse.GerarParecerConclusivoAlunoAsync(conselhoClasseId, fechamentoTurmaId, alunoCodigo);