public async Task <IEnumerable <AtribuicaoCJ> > Handle(ObterAtribuicoesCJPorFiltroQuery request, CancellationToken cancellationToken)
        {
            var lstAtribuicoes = await atribuicaoCJRepository.ObterPorFiltros(request.Modalidade,
                                                                              request.TurmaId, request.UeId, request.ComponenteCurricularId, request.UsuarioRf,
                                                                              request.UsuarioNome, true, anoLetivo : request.AnoLetivo);

            return(lstAtribuicoes);
        }
Beispiel #2
0
        private async Task <IEnumerable <IGrouping <string, ComponenteCurricularPorTurmaRegencia> > > ObterComponentesCJ(Modalidade modalidade, string[] codigosTurma, string ueId, long[] codigosComponentesCurriculares, string rf, bool ignorarDeParaRegencia = false)
        {
            IEnumerable <ComponenteCurricularPorTurmaRegencia> componentes = null;
            var atribuicoes = await atribuicaoCJRepository.ObterPorFiltros(modalidade,
                                                                           null,
                                                                           ueId,
                                                                           0,
                                                                           rf,
                                                                           string.Empty,
                                                                           true,
                                                                           turmaIds : codigosTurma,
                                                                           componentesCurricularresId : codigosComponentesCurriculares);

            if (atribuicoes == null || !atribuicoes.Any())
            {
                return(null);
            }

            var disciplinasEol = await mediator.Send(new ObterComponentesCurricularesEolPorIdsQuery()
            {
                ComponentesCurricularesIds = atribuicoes.Select(a => a.ComponenteCurricularId).Distinct().ToArray()
            });

            var componenteRegencia = disciplinasEol?.FirstOrDefault(c => c.Regencia);

            if (componenteRegencia == null || ignorarDeParaRegencia)
            {
                return(MapearComponentesPorAtribuicaoCJ(atribuicoes, disciplinasEol));
            }

            var componentesRegencia = await mediator.Send(new ObterComponentesCurricularesEolPorIdsQuery()
            {
                ComponentesCurricularesIds = IDS_COMPONENTES_REGENCIA
            });

            if (componentesRegencia != null)
            {
                return(MapearComponentesPorAtribuicaoCJ(atribuicoes, componentesRegencia));
            }

            return(componentes.GroupBy(c => c.CodigoTurma));
        }