public async Task <IEnumerable <TipoCiclo> > Handle(ObterCiclosAnosPorModalidadeQuery request, CancellationToken cancellationToken) { var ciclos = await cicloRepository.ObterCiclosPorAnosModalidade(request.Anos, request.Modalidade); if (ciclos == null && ciclos.Any()) { throw new NegocioException("Não foi possível encontrar os ciclos dos anos e na modalidade."); } return(ciclos); }
private async Task <IDictionary <string, string> > ObterNotasTipo(IEnumerable <Turma> turmas, Modalidade modalidade, DateTime dataReferencia) { var anos = turmas.Select(t => t.Ano.ToString()).Distinct(); var tipoCiclos = await cicloRepository.ObterCiclosPorAnosModalidade(anos.ToArray(), modalidade); if (tipoCiclos == null) { throw new NegocioException("Não foi encontrado o ciclo da turma informada"); } var tiposCicloId = tipoCiclos.Select(t => t.Id); var notasTipo = await notaTipoRepository.ObterPorCiclosIdDataAvalicacao(tiposCicloId.ToArray(), dataReferencia); var lstTurmasTipoNota = new Dictionary <string, string>(); foreach (var turma in turmas) { lstTurmasTipoNota.Add(turma.Codigo, notasTipo.FirstOrDefault(nt => nt.Ciclo == tipoCiclos.FirstOrDefault(tp => tp.Ano.ToString() == turma.Ano).Id).TipoNota); } return(lstTurmasTipoNota); }